From 5adad7d869fa48ee159a6555ce45728eb06d0edc Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Mon, 9 Sep 2024 09:54:52 -0600 Subject: [PATCH] fix for sanity check of null input --- wolfcrypt/src/pkcs7.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/wolfcrypt/src/pkcs7.c b/wolfcrypt/src/pkcs7.c index 69b9ef8a4..349d3daaf 100644 --- a/wolfcrypt/src/pkcs7.c +++ b/wolfcrypt/src/pkcs7.c @@ -3451,14 +3451,25 @@ int wc_PKCS7_SetCustomSKID(PKCS7* pkcs7, byte* in, word16 inSz) return BAD_FUNC_ARG; } - pkcs7->customSKID = (byte*)XMALLOC(inSz, pkcs7->heap, DYNAMIC_TYPE_PKCS7); - if (pkcs7->customSKID == NULL) { - ret = MEMORY_E; + if (in == NULL) { + if (pkcs7->customSKID != NULL) { + XFREE(pkcs7->customSKID, pkcs7->heap, DYNAMIC_TYPE_PKCS7); + } + pkcs7->customSKIDSz = 0; + pkcs7->customSKID = NULL; } else { - XMEMCPY(pkcs7->customSKID, in, inSz); - pkcs7->customSKIDSz = inSz; + pkcs7->customSKID = (byte*)XMALLOC(inSz, pkcs7->heap, + DYNAMIC_TYPE_PKCS7); + if (pkcs7->customSKID == NULL) { + ret = MEMORY_E; + } + else { + XMEMCPY(pkcs7->customSKID, in, inSz); + pkcs7->customSKIDSz = inSz; + } } + return ret; }