summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2019-07-01 09:41:47 +0200
committerBernd Edlinger <bernd.edlinger@hotmail.de>2019-07-02 16:25:00 +0200
commit42180a229e97b0bcbbe07aeadb3dcb7dc31cfdc4 (patch)
treef5c36b96b47c5aca66014cfb5e70e45745d072bd
parent261ec72d58af64327214a78ca1c54b169ad93c28 (diff)
Check for V_ASN1_BOOLEAN/V_ASN1_NULL in X509_ATTRIBUTE_get0_data
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)
-rw-r--r--crypto/x509/x509_att.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/x509/x509_att.c b/crypto/x509/x509_att.c
index 63895efe46..65daa492a1 100644
--- a/crypto/x509/x509_att.c
+++ b/crypto/x509/x509_att.c
@@ -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;
}