Always check that the value returned by asn1_do_adb() is non-NULL
authorRichard Levitte <levitte@openssl.org>
Tue, 14 Jun 2016 21:54:56 +0000 (23:54 +0200)
committerRichard Levitte <levitte@openssl.org>
Tue, 14 Jun 2016 23:42:40 +0000 (01:42 +0200)
Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
(cherry picked from commit bace847eae24f48adc6a967c6cce7f8d05bbeda3)

crypto/asn1/tasn_dec.c

index 6bdcd5c542ca56a101e5a267fbb137de8966c892..cda19bb8d1851da5e2329147fbe29424df4413cc 100644 (file)
@@ -401,6 +401,8 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
                 const ASN1_TEMPLATE *seqtt;
                 ASN1_VALUE **pseqval;
                 seqtt = asn1_do_adb(pval, tt, 1);
+                if (!seqtt)
+                    continue;
                 pseqval = asn1_get_field_ptr(pval, seqtt);
                 ASN1_template_free(pseqval, seqtt);
             }