S/MIME: Code review fixes

This commit is contained in:
Kareem Abuobeid
2021-04-30 14:00:59 -07:00
parent 573d51966a
commit baa80284c0

View File

@ -54389,8 +54389,7 @@ WOLFSSL_API PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
goto error; goto error;
} }
section = (char*)XMALLOC((remainLen+1)*sizeof(char), NULL, section = (char*)XMALLOC(remainLen+1, NULL, DYNAMIC_TYPE_PKCS7);
DYNAMIC_TYPE_PKCS7);
if (section == NULL) { if (section == NULL) {
goto error; goto error;
} }
@ -54437,12 +54436,11 @@ WOLFSSL_API PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
} }
boundLen = XSTRLEN(curParam->value) + 2; boundLen = XSTRLEN(curParam->value) + 2;
boundary = (char*)XMALLOC((boundLen+1)*sizeof(char), NULL, boundary = (char*)XMALLOC(boundLen+1, NULL, DYNAMIC_TYPE_PKCS7);
DYNAMIC_TYPE_PKCS7);
if (boundary == NULL) { if (boundary == NULL) {
goto error; goto error;
} }
XMEMSET(boundary, 0, (word32)((boundLen+1)*sizeof(char))); XMEMSET(boundary, 0, (word32)(boundLen+1));
boundary[0] = boundary[1] = '-'; boundary[0] = boundary[1] = '-';
XSTRNCPY(&boundary[2], curParam->value, boundLen-2); XSTRNCPY(&boundary[2], curParam->value, boundLen-2);
@ -54464,8 +54462,8 @@ WOLFSSL_API PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
section[0] = '\0'; section[0] = '\0';
sectionLen = 0; sectionLen = 0;
canonSection = XMALLOC((remainLen+1)*sizeof(char), NULL, canonSection = (char*)XMALLOC(remainLen+1, NULL,
DYNAMIC_TYPE_PKCS7); DYNAMIC_TYPE_PKCS7);
if (canonSection == NULL) { if (canonSection == NULL) {
goto error; goto error;
} }
@ -54475,13 +54473,13 @@ WOLFSSL_API PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
remainLen > 0) { remainLen > 0) {
canonLine = wc_MIME_canonicalize(&section[sectionLen]); canonLine = wc_MIME_canonicalize(&section[sectionLen]);
if (canonLine == NULL) { if (canonLine == NULL) {
XFREE(canonSection, NULL, DYNAMIC_TYPE_PKCS7);
goto error; goto error;
} }
XMEMCPY(&canonSection[canonPos], canonLine, XMEMCPY(&canonSection[canonPos], canonLine,
(int)XSTRLEN(canonLine)); (int)XSTRLEN(canonLine));
canonPos += XSTRLEN(canonLine); canonPos += XSTRLEN(canonLine);
XFREE(canonLine, NULL, DYNAMIC_TYPE_PKCS7); XFREE(canonLine, NULL, DYNAMIC_TYPE_PKCS7);
canonLine = NULL;
sectionLen += lineLen; sectionLen += lineLen;
remainLen -= lineLen; remainLen -= lineLen;
@ -54489,7 +54487,6 @@ WOLFSSL_API PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
lineLen = wolfSSL_BIO_gets(in, &section[sectionLen], lineLen = wolfSSL_BIO_gets(in, &section[sectionLen],
remainLen); remainLen);
if (lineLen <= 0) { if (lineLen <= 0) {
XFREE(canonSection, NULL, DYNAMIC_TYPE_PKCS7);
goto error; goto error;
} }
} }
@ -54511,13 +54508,13 @@ WOLFSSL_API PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
ret = wolfSSL_BIO_write(*bcont, canonSection, ret = wolfSSL_BIO_write(*bcont, canonSection,
(int)XSTRLEN(canonSection)); (int)XSTRLEN(canonSection));
if (ret != (int)XSTRLEN(canonSection)) { if (ret != (int)XSTRLEN(canonSection)) {
XFREE(canonSection, NULL, DYNAMIC_TYPE_PKCS7);
goto error; goto error;
} }
if ((bcontMemSz = wolfSSL_BIO_get_mem_data(*bcont, &bcontMem)) < 0) { if ((bcontMemSz = wolfSSL_BIO_get_mem_data(*bcont, &bcontMem)) < 0) {
goto error; goto error;
} }
XFREE(canonSection, NULL, DYNAMIC_TYPE_PKCS7); XFREE(canonSection, NULL, DYNAMIC_TYPE_PKCS7);
canonSection = NULL;
wc_MIME_free_hdrs(allHdrs); wc_MIME_free_hdrs(allHdrs);
@ -54574,6 +54571,7 @@ WOLFSSL_API PKCS7* wolfSSL_SMIME_read_PKCS7(WOLFSSL_BIO* in,
} }
XFREE(boundary, NULL, DYNAMIC_TYPE_PKCS7); XFREE(boundary, NULL, DYNAMIC_TYPE_PKCS7);
boundary = NULL;
} }
} }
else if (curHdr && (!XSTRNCMP(curHdr->body, kAppPkcs7Mime, else if (curHdr && (!XSTRNCMP(curHdr->body, kAppPkcs7Mime,
@ -54642,6 +54640,8 @@ error:
XFREE(boundary, NULL, DYNAMIC_TYPE_PKCS7); XFREE(boundary, NULL, DYNAMIC_TYPE_PKCS7);
XFREE(outHead, NULL, DYNAMIC_TYPE_PKCS7); XFREE(outHead, NULL, DYNAMIC_TYPE_PKCS7);
XFREE(section, NULL, DYNAMIC_TYPE_PKCS7); XFREE(section, NULL, DYNAMIC_TYPE_PKCS7);
if (canonSection != NULL)
XFREE(canonSection, NULL, DYNAMIC_TYPE_PKCS7);
wolfSSL_BIO_free(*bcont); wolfSSL_BIO_free(*bcont);
return NULL; return NULL;