File: 68_lib-hello_ext.c-Add-gnutls_free-to-avoid-memory-leak.patch

package info (click to toggle)
gnutls28 3.7.9-2%2Bdeb12u5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bookworm-proposed-updates
  • size: 78,064 kB
  • sloc: ansic: 378,337; asm: 113,340; sh: 17,300; makefile: 6,698; yacc: 1,851; lisp: 1,593; python: 1,370; cpp: 1,362; perl: 995; sed: 16
file content (35 lines) | stat: -rw-r--r-- 1,097 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
From 1b69a374e656967be41200fd93303e6ed82a1ba4 Mon Sep 17 00:00:00 2001
From: Jiasheng Jiang <jian1000@purdue.edu>
Date: Sat, 5 Jul 2025 00:56:36 +0000
Subject: [PATCH] lib/hello_ext.c: Add gnutls_free() to avoid memory leak

Add gnutls_free() to free tmp_mod.name in the error handling to avoid memory leak.

Fixes: 5bba569b4 ("gnutls_session_ext_register: keep track of extension name")
Signed-off-by: JiashengJiang <jiasheng@purdue.edu>
---
 lib/hello_ext.c | 2 ++
 1 file changed, 2 insertions(+)

--- a/lib/hello_ext.c
+++ b/lib/hello_ext.c
@@ -926,17 +926,19 @@ gnutls_session_ext_register(gnutls_sessi
 		else
 			tmp_mod.validity |= GNUTLS_EXT_FLAG_TLS;
 	}
 
 	if (unlikely(INT_ADD_OVERFLOW(session->internals.rexts_size, 1))) {
+		gnutls_free(tmp_mod.name);
 		return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
 	}
 
 	exts = _gnutls_reallocarray(session->internals.rexts,
 				    session->internals.rexts_size + 1,
 				    sizeof(*exts));
 	if (exts == NULL) {
+		gnutls_free(tmp_mod.name);
 		return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
 	}
 
 	session->internals.rexts = exts;