From: Matt Caswell Date: Tue, 16 Oct 2018 16:08:11 +0000 (+0100) Subject: Properly handle duplicated messages from the next epoch X-Git-Tag: OpenSSL_1_0_2q~8 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f1e5009c1c95b708b9ba21c23693f95468089419;p=oweals%2Fopenssl.git Properly handle duplicated messages from the next epoch Since 3884b47b7c we may attempt to buffer a record from the next epoch that has already been buffered. Prior to that this never occurred. We simply ignore a failure to buffer a duplicated record. Fixes #6902 Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7415) --- diff --git a/ssl/d1_pkt.c b/ssl/d1_pkt.c index f5deddf770..23aa9dbce4 100644 --- a/ssl/d1_pkt.c +++ b/ssl/d1_pkt.c @@ -293,14 +293,12 @@ dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char *priority) return (-1); } - /* insert should not fail, since duplicates are dropped */ if (pqueue_insert(queue->q, item) == NULL) { - SSLerr(SSL_F_DTLS1_BUFFER_RECORD, ERR_R_INTERNAL_ERROR); + /* Must be a duplicate so ignore it */ if (rdata->rbuf.buf != NULL) OPENSSL_free(rdata->rbuf.buf); OPENSSL_free(rdata); pitem_free(item); - return (-1); } return (1);