From: Matt Caswell Date: Fri, 2 May 2025 15:37:32 +0000 (+0100) Subject: Ensure we properly release DTLS buffered app data records X-Git-Tag: openssl-3.4.2~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d459d00f97959d5003b29f32d52a53208507cda1;p=thirdparty%2Fopenssl.git Ensure we properly release DTLS buffered app data records If we read an app data record before we have read the Finished we buffer it. Once we've read it we need to make sure we've properly released it otherwise we will attempt to read it again (and this time there will be no data in it). Fixes #27316 Reviewed-by: Viktor Dukhovni Reviewed-by: Tomas Mraz Reviewed-by: Todd Short (Merged from https://github.com/openssl/openssl/pull/27543) --- diff --git a/ssl/record/rec_layer_s3.c b/ssl/record/rec_layer_s3.c index cce236bb7b2..1e4c748868a 100644 --- a/ssl/record/rec_layer_s3.c +++ b/ssl/record/rec_layer_s3.c @@ -569,6 +569,7 @@ int ssl_release_record(SSL_CONNECTION *s, TLS_RECORD *rr, size_t length) /* We allocated the buffers for this record (only happens with DTLS) */ OPENSSL_free(rr->allocdata); rr->allocdata = NULL; + s->rlayer.curr_rec++; } rr->length -= length; if (rr->length > 0)