From: Matt Caswell Date: Wed, 28 Sep 2016 13:12:26 +0000 (+0100) Subject: Fix an Uninit read in DTLS X-Git-Tag: OpenSSL_1_1_0c~106 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=61b1eb2c67542c85311843300f49d019f80afc6c;p=oweals%2Fopenssl.git Fix an Uninit read in DTLS If we have a handshake fragment waiting then dtls1_read_bytes() was not correctly setting the value of recvd_type, leading to an uninit read. Reviewed-by: Rich Salz (cherry picked from commit 2f2d6e3e3ccd1ae7bba9f1af62f97dfca986e083) --- diff --git a/ssl/record/rec_layer_d1.c b/ssl/record/rec_layer_d1.c index 2455c2bd12..1d16319f14 100644 --- a/ssl/record/rec_layer_d1.c +++ b/ssl/record/rec_layer_d1.c @@ -359,8 +359,10 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, /* * check whether there's a handshake message (client hello?) waiting */ - if ((ret = have_handshake_fragment(s, type, buf, len))) + if ((ret = have_handshake_fragment(s, type, buf, len))) { + *recvd_type = SSL3_RT_HANDSHAKE; return ret; + } /* * Now s->rlayer.d->handshake_fragment_len == 0 if