Check for V_ASN1_BOOLEAN/V_ASN1_NULL in X509_ATTRIBUTE_get0_data
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Mon, 1 Jul 2019 07:41:47 +0000 (09:41 +0200)
committerBernd Edlinger <bernd.edlinger@hotmail.de>
Tue, 2 Jul 2019 14:25:00 +0000 (16:25 +0200)
The member value.ptr is undefined for those ASN1 types.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9278)

(cherry picked from commit 94f4d58a87eac9c6fe4cb46b998656bd6d6f03a5)

crypto/x509/x509_att.c

index 63895efe460801a37fea6d01e95abebe4c9d6aba..65daa492a18142ec02d4429656639fd10f46d278 100644 (file)
@@ -314,7 +314,9 @@ void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,
     ttmp = X509_ATTRIBUTE_get0_type(attr, idx);
     if (!ttmp)
         return NULL;
-    if (atrtype != ASN1_TYPE_get(ttmp)) {
+    if (atrtype == V_ASN1_BOOLEAN
+            || atrtype == V_ASN1_NULL
+            || atrtype != ASN1_TYPE_get(ttmp)) {
         X509err(X509_F_X509_ATTRIBUTE_GET0_DATA, X509_R_WRONG_TYPE);
         return NULL;
     }