Commit bbeade53dd for openssl.org
commit bbeade53ddd1f2fce73485207f9dd752fea68f4a
Author: huanghuihui0904 <625173@qq.com>
Date: Mon Mar 16 15:16:21 2026 +0800
ssl/statem/statem_dtls.c: fix leak in dtls1_buffer_message()
pqueue_insert() may fail, but its return value was not checked. This could leak the allocated pitem and handshake fragment. Free them when insertion fails, using pitem_free() for proper cleanup.
Solves https://github.com/openssl/openssl/issues/30442
Fixes #30442
Signed-off-by: huanghuihui0904 <625173@qq.com>
Reviewed-by: Matt Caswell <matt@openssl.foundation>
Reviewed-by: Frederik Wedel-Heinen <fwh.openssl@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
MergeDate: Sat Mar 21 23:11:54 2026
(Merged from https://github.com/openssl/openssl/pull/30443)
diff --git a/ssl/statem/statem_dtls.c b/ssl/statem/statem_dtls.c
index 1644c6e47c..860d4c1c00 100644
--- a/ssl/statem/statem_dtls.c
+++ b/ssl/statem/statem_dtls.c
@@ -1262,7 +1262,11 @@ int dtls1_buffer_message(SSL_CONNECTION *s, int is_ccs)
return 0;
}
- pqueue_insert(s->d1->sent_messages, item);
+ if (pqueue_insert(s->d1->sent_messages, item) == NULL) {
+ dtls1_hm_fragment_free(frag);
+ pitem_free(item);
+ return 0;
+ }
return 1;
}