提交 44c734e9 编写于 作者: D Dr. Stephen Henson

embed support for CHOICE type

Reviewed-by: NRich Salz <rsalz@openssl.org>
上级 71a64af3
......@@ -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:
......
......@@ -142,9 +142,13 @@ int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
return 1;
}
}
*pval = OPENSSL_zalloc(it->size);
if (!*pval)
goto memerr;
if (embed) {
memset(*pval, 0, it->size);
} else {
*pval = OPENSSL_zalloc(it->size);
if (!*pval)
goto memerr;
}
asn1_set_choice_selector(pval, -1, it);
if (asn1_cb && !asn1_cb(ASN1_OP_NEW_POST, pval, it, NULL))
goto auxerr;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册