Merge pull request #9929 from douzzer/20260309-nullPointerOutOfMemory

20260309-nullPointerOutOfMemory
(reviewed+approved by @philljj)
This commit is contained in:
Daniel Pouzzner
2026-03-09 23:36:44 -05:00
committed by GitHub
2 changed files with 20 additions and 17 deletions
+9 -11
View File
@@ -4898,18 +4898,16 @@ WOLFSSL_ECDSA_SIG *wolfSSL_ECDSA_SIG_new(void)
DYNAMIC_TYPE_ECC);
if (sig == NULL) {
WOLFSSL_MSG("wolfSSL_ECDSA_SIG_new malloc ECDSA signature failure");
err = 1;
return NULL;
}
if (!err) {
/* Set s to NULL in case of error. */
sig->s = NULL;
/* Allocate BN into r. */
sig->r = wolfSSL_BN_new();
if (sig->r == NULL) {
WOLFSSL_MSG("wolfSSL_ECDSA_SIG_new malloc ECDSA r failure");
err = 1;
}
/* Set s to NULL in case of error. */
sig->s = NULL;
/* Allocate BN into r. */
sig->r = wolfSSL_BN_new();
if (sig->r == NULL) {
WOLFSSL_MSG("wolfSSL_ECDSA_SIG_new malloc ECDSA r failure");
err = 1;
}
if (!err) {
/* Allocate BN into s. */
@@ -4920,7 +4918,7 @@ WOLFSSL_ECDSA_SIG *wolfSSL_ECDSA_SIG_new(void)
}
}
if (err && (sig != NULL)) {
if (err) {
/* Dispose of allocated memory. */
wolfSSL_ECDSA_SIG_free(sig);
sig = NULL;
+11 -6
View File
@@ -67,14 +67,19 @@ static int d2i_make_pkey(WOLFSSL_EVP_PKEY** out, const unsigned char* mem,
/* Set the size and allocate memory for key data to be copied into. */
pkey->pkey_sz = (int)memSz;
pkey->pkey.ptr = (char*)XMALLOC((size_t)memSz, NULL,
priv ? DYNAMIC_TYPE_PRIVATE_KEY : DYNAMIC_TYPE_PUBLIC_KEY);
if (pkey->pkey.ptr == NULL) {
ret = 0;
if (memSz > 0) {
pkey->pkey.ptr = (char*)XMALLOC((size_t)memSz, NULL,
priv ? DYNAMIC_TYPE_PRIVATE_KEY : DYNAMIC_TYPE_PUBLIC_KEY);
if (pkey->pkey.ptr == NULL) {
ret = 0;
}
if (ret == 1) {
/* Copy in key data. */
XMEMCPY(pkey->pkey.ptr, mem, memSz);
}
}
if (ret == 1) {
/* Copy in key data, set key type passed in and return object. */
XMEMCPY(pkey->pkey.ptr, mem, memSz);
/* Set key type passed in and return object. */
pkey->type = type;
*out = pkey;
}