Commit ca80ba81 authored by Richard Levitte's avatar Richard Levitte
Browse files

asn1_item_embed_new(): don't free an embedded item



An embedded item wasn't allocated separately on the heap, so don't
free it as if it was.

Issue discovered by Pavel Kopyl

Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4572)

(cherry picked from commit 590bbdfd)
parent 84a85b57
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -142,6 +142,7 @@ int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
    return 1;

 memerr2:
    if (!embed)
        ASN1_item_ex_free(pval, it);
 memerr:
    ASN1err(ASN1_F_ASN1_ITEM_EMBED_NEW, ERR_R_MALLOC_FAILURE);
@@ -151,6 +152,7 @@ int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
    return 0;

 auxerr2:
    if (!embed)
        ASN1_item_ex_free(pval, it);
 auxerr:
    ASN1err(ASN1_F_ASN1_ITEM_EMBED_NEW, ASN1_R_AUX_ERROR);