X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fasn1%2Ftasn_fre.c;h=1e778858ac13879e5877438554e3b430387d8734;hp=e219e2c0a31d3bfe85be16bf296b75c4a437ed3f;hb=44c734e95c4242af5ccfd7e5c4653eb196705cb9;hpb=de17bd5d7f8286d8b1f0a04a3f8f5782033f5ebd diff --git a/crypto/asn1/tasn_fre.c b/crypto/asn1/tasn_fre.c index e219e2c0a3..1e778858ac 100644 --- a/crypto/asn1/tasn_fre.c +++ b/crypto/asn1/tasn_fre.c @@ -125,8 +125,10 @@ static void asn1_item_embed_free(ASN1_VALUE **pval, const ASN1_ITEM *it, } if (asn1_cb) asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL); - OPENSSL_free(*pval); - *pval = NULL; + if (embed == 0) { + OPENSSL_free(*pval); + *pval = NULL; + } break; case ASN1_ITYPE_EXTERN: @@ -249,6 +251,5 @@ void asn1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it) ASN1_STRING_free((ASN1_STRING *)*pval); break; } - if (*pval) - *pval = NULL; + *pval = NULL; }