summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2023-03-29 15:03:06 +0900
committerDaiki Ueno <ueno@gnu.org>2023-03-29 15:39:53 +0900
commit6a58673266750f5a34fe24bfdcaa788c99be46be (patch)
treeed72f441adf8f8403fec4f749d735450fdc3360d
parent0edcd8fff33e5aacac1a5f5cf1b1616118572236 (diff)
downloadgnutls-6a58673266750f5a34fe24bfdcaa788c99be46be.tar.gz
audit: fix memleaks in TLS 1.3 certificate sign/verify events
Signed-off-by: Daiki Ueno <ueno@gnu.org>
-rw-r--r--lib/tls13-sig.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/tls13-sig.c b/lib/tls13-sig.c
index e2030f97af..27eab497e5 100644
--- a/lib/tls13-sig.c
+++ b/lib/tls13-sig.c
@@ -85,8 +85,6 @@ _gnutls13_handshake_verify_data(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_buffer_init(&buf);
-
ret =
_gnutls_audit_push_context(&session->internals.audit_context_stack,
(gnutls_audit_context_t)
@@ -102,6 +100,8 @@ _gnutls13_handshake_verify_data(gnutls_session_t session,
head->context, "tls::signature_algorithm",
se->aid.id[0] << 8 | se->aid.id[1]);
+ _gnutls_buffer_init(&buf);
+
memset(prefix, 0x20, sizeof(prefix));
ret = _gnutls_buffer_append_data(&buf, prefix, sizeof(prefix));
if (ret < 0) {
@@ -184,8 +184,6 @@ _gnutls13_handshake_sign_data(gnutls_session_t session,
("HSK[%p]: signing TLS 1.3 handshake data: using %s and PRF: %s\n",
session, se->name, session->security_parameters.prf->name);
- _gnutls_buffer_init(&buf);
-
ret =
_gnutls_audit_push_context(&session->internals.audit_context_stack,
(gnutls_audit_context_t)
@@ -201,6 +199,8 @@ _gnutls13_handshake_sign_data(gnutls_session_t session,
head->context, "tls::signature_algorithm",
se->aid.id[0] << 8 | se->aid.id[1]);
+ _gnutls_buffer_init(&buf);
+
ret = _gnutls_buffer_resize(&buf, PREFIX_SIZE);
if (ret < 0) {
gnutls_assert();