embed support for CHOICE type
[openssl.git] / crypto / asn1 / tasn_fre.c
index bd955d98489859aec1ce93bf226ce8321282c5d5..1e778858ac13879e5877438554e3b430387d8734 100644 (file)
@@ -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);
         }
         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:
         break;
 
     case ASN1_ITYPE_EXTERN: