]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
tests/x509-cert-callback-ocsp.c: Free p and certs on error to avoid memory leak
authorJiasheng Jiang <jian1000@purdue.edu>
Sat, 5 Jul 2025 00:49:56 +0000 (00:49 +0000)
committerDaiki Ueno <ueno@gnu.org>
Sat, 5 Jul 2025 00:49:56 +0000 (09:49 +0900)
Call gnutls_free() to release p and certs on error, preventing a memory leak.

Fixes: db486d97c ("tests: enhanced OCSP tests")
Signed-off-by: JiashengJiang <jiasheng@purdue.edu>
tests/x509-cert-callback-ocsp.c

index 2aebeb49b70215e001649689aec19d6904bb2205..c6147e0223e9c8151863d150a63d488083de0021 100644 (file)
@@ -82,23 +82,34 @@ static int server_cert_callback(gnutls_session_t session,
                ret = gnutls_x509_crt_list_import2(
                        &certs, &certs_size, &server_ca3_localhost_cert_chain,
                        GNUTLS_X509_FMT_PEM, 0);
-               if (ret < 0)
+               if (ret < 0) {
+                       gnutls_free(p);
                        return -1;
+               }
+
                ret = gnutls_pcert_import_x509_list(p, certs, &certs_size, 0);
-               if (ret < 0)
+               if (ret < 0) {
+                       gnutls_free(certs);
+                       gnutls_free(p);
                        return -1;
+               }
+
                for (i = 0; i < certs_size; i++)
                        gnutls_x509_crt_deinit(certs[i]);
                gnutls_free(certs);
 
                ret = gnutls_privkey_init(&lkey);
-               if (ret < 0)
+               if (ret < 0) {
+                       gnutls_free(p);
                        return -1;
+               }
 
                ret = gnutls_privkey_import_x509_raw(
                        lkey, &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
-               if (ret < 0)
+               if (ret < 0) {
+                       gnutls_free(p);
                        return -1;
+               }
 
                server_pcert = p;
                server_pkey = lkey;