Don't set *pval to NULL in ASN1_item_ex_new.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 2 Apr 2015 12:45:14 +0000 (13:45 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 10 Apr 2015 18:53:00 +0000 (19:53 +0100)
While *pval is usually a pointer in rare circumstances it can be a long
value. One some platforms (e.g. WIN64) where
sizeof(long) < sizeof(ASN1_VALUE *) this will write past the field.

*pval is initialised correctly in the rest of ASN1_item_ex_new so setting it
to NULL is unecessary anyway.

Thanks to Julien Kauffmann for reporting this issue.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(cherry picked from commit f617b4969a9261b9d7d381670aefbe2cf766a2cb)

Conflicts:
crypto/asn1/tasn_new.c

crypto/asn1/tasn_new.c

index 7d2964f02307b2013af62614e632dfbd02097500..b0c73beeb578703d956a15026f5a6a29fde8848a 100644 (file)
@@ -100,9 +100,6 @@ static int asn1_item_ex_combine_new(ASN1_VALUE **pval, const ASN1_ITEM *it,
     else
         asn1_cb = 0;
 
     else
         asn1_cb = 0;
 
-    if (!combine)
-        *pval = NULL;
-
 #ifdef CRYPTO_MDEBUG
     if (it->sname)
         CRYPTO_push_info(it->sname);
 #ifdef CRYPTO_MDEBUG
     if (it->sname)
         CRYPTO_push_info(it->sname);