diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 3e3f57a64..d9c76b2c5 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -19094,13 +19094,11 @@ int wc_MIME_parse_headers(char* in, int inLen, MimeHdr** headers) } *headers = curHdr; - XFREE(nextHdr, NULL, DYNAMIC_TYPE_PKCS7); - XFREE(nextParam, NULL, DYNAMIC_TYPE_PKCS7); - - return 0; + ret = 0; /* success if at this point */ error: - wc_MIME_free_hdrs(curHdr); + if (ret != 0) + wc_MIME_free_hdrs(curHdr); wc_MIME_free_hdrs(nextHdr); if (nameAttr != NULL) XFREE(nameAttr, NULL, DYNAMIC_TYPE_PKCS7);