forked from wolfSSL/wolfssl
Fix possible double free
This commit is contained in:
@ -37514,8 +37514,10 @@ int wc_MIME_parse_headers(char* in, int inLen, MimeHdr** headers)
|
|||||||
}
|
}
|
||||||
else if (mimeStatus == MIME_BODYVAL && cur == ';' && pos >= 1) {
|
else if (mimeStatus == MIME_BODYVAL && cur == ';' && pos >= 1) {
|
||||||
end = pos-1;
|
end = pos-1;
|
||||||
if (bodyVal != NULL)
|
if (bodyVal != NULL) {
|
||||||
XFREE(bodyVal, NULL, DYNAMIC_TYPE_PKCS7);
|
XFREE(bodyVal, NULL, DYNAMIC_TYPE_PKCS7);
|
||||||
|
bodyVal = NULL;
|
||||||
|
}
|
||||||
ret = wc_MIME_header_strip(curLine, &bodyVal, start, end);
|
ret = wc_MIME_header_strip(curLine, &bodyVal, start, end);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
goto error;
|
goto error;
|
||||||
@ -37608,8 +37610,11 @@ error:
|
|||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
wc_MIME_free_hdrs(curHdr);
|
wc_MIME_free_hdrs(curHdr);
|
||||||
wc_MIME_free_hdrs(nextHdr);
|
wc_MIME_free_hdrs(nextHdr);
|
||||||
|
if (nameAttr != NULL)
|
||||||
XFREE(nameAttr, NULL, DYNAMIC_TYPE_PKCS7);
|
XFREE(nameAttr, NULL, DYNAMIC_TYPE_PKCS7);
|
||||||
|
if (bodyVal != NULL)
|
||||||
XFREE(bodyVal, NULL, DYNAMIC_TYPE_PKCS7);
|
XFREE(bodyVal, NULL, DYNAMIC_TYPE_PKCS7);
|
||||||
|
if (nextParam != NULL)
|
||||||
XFREE(nextParam, NULL, DYNAMIC_TYPE_PKCS7);
|
XFREE(nextParam, NULL, DYNAMIC_TYPE_PKCS7);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
Reference in New Issue
Block a user