Fix DTLS failure when used in a build which has SCTP enabled
authorMatt Caswell <matt@openssl.org>
Tue, 20 Jun 2017 15:36:30 +0000 (16:36 +0100)
committerMatt Caswell <matt@openssl.org>
Wed, 21 Jun 2017 14:02:46 +0000 (15:02 +0100)
commit21815512063d00325fd8e25f3f39ced047cb968b
tree5a5247a0d642354acae3ebcacd81e91be7773a1c
parentd717edf80ed3494a5a25c0b82ce61e5885de68ac
Fix DTLS failure when used in a build which has SCTP enabled

The value of BIO_CTRL_DGRAM_SET_PEEK_MODE was clashing with the value for
BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE. In an SCTP enabled build
BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE was used unconditionally with
the reasoning that it would be ignored if SCTP wasn't in use. Unfortunately
due to this clash, this wasn't the case. The BIO ended up going into peek
mode and was continually reading the same data over and over - throwing it
away as a replay.

Fixes #3723

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3724)

(cherry picked from commit 9924087573cfbc8d2bc97088f36d1a81ca00cda3)
crypto/bio/bss_dgram.c
include/openssl/bio.h
ssl/statem/statem.c