Fix omitted selector handling.
authorDr. Stephen Henson <steve@openssl.org>
Tue, 14 Jun 2016 16:44:22 +0000 (17:44 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 14 Jun 2016 18:15:51 +0000 (19:15 +0100)
The selector field could be omitted because it has a DEFAULT value.
In this case *sfld == NULL (sfld can never be NULL). This was not
noticed because this was never used in existing ASN.1 modules.

Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/asn1/tasn_utl.c

index f03f9e9..c215891 100644 (file)
@@ -189,7 +189,7 @@ const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt,
     sfld = offset2ptr(*pval, adb->offset);
 
     /* Check if NULL */
-    if (!sfld) {
+    if (*sfld == NULL) {
         if (!adb->null_tt)
             goto err;
         return adb->null_tt;