]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
lib/pkcs11_privkey.c: Add check for gnutls_malloc
authorJiasheng Jiang <jiashengjiangcool@gmail.com>
Sat, 2 Aug 2025 16:07:59 +0000 (16:07 +0000)
committerDaiki Ueno <ueno@gnu.org>
Mon, 4 Aug 2025 05:10:26 +0000 (14:10 +0900)
Add check for the return value of gnutls_malloc() to avoid potential NULL pointer dereference.

Fixes: be560a813 ("Added gnutls_pkcs11_privkey_t and gnutls_privkey_t types. Those are an abstract private key type that can be used to sign/encrypt any private key of pkcs11,x509 or openpgp types. Added support for PKCS11 in gnutls-cli/gnutls-serv.")
Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
lib/pkcs11_privkey.c

index 5093a6d569e7f4b06bb41be97cedda69116acf56..568474e48fd9d84ec30609032476f8cecae2ac78 100644 (file)
@@ -401,6 +401,12 @@ retry_login:
        }
 
        tmp.data = gnutls_malloc(siglen);
+       if (tmp.data == NULL) {
+               gnutls_assert();
+               ret = GNUTLS_E_MEMORY_ERROR;
+               goto cleanup;
+       }
+
        tmp.size = siglen;
 
        rv = pkcs11_sign(sinfo->module, sinfo->pks, hash->data, hash->size,
@@ -757,6 +763,12 @@ retry_login:
        }
 
        plaintext->data = gnutls_malloc(siglen);
+       if (plaintext->data == NULL) {
+               gnutls_assert();
+               ret = GNUTLS_E_MEMORY_ERROR;
+               goto cleanup;
+       }
+
        plaintext->size = siglen;
 
        rv = pkcs11_decrypt(key->sinfo.module, key->sinfo.pks, ciphertext->data,