diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2019-07-01 09:41:47 +0200 |
---|---|---|
committer | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2019-07-02 16:22:02 +0200 |
commit | 94f4d58a87eac9c6fe4cb46b998656bd6d6f03a5 (patch) | |
tree | 517d6b545c1da393dcd1bf7b63edec6271053d60 /crypto/x509/x509_att.c | |
parent | 6335f837cfa7eaf1202f2557bf2ba148987226e7 (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)
Diffstat (limited to 'crypto/x509/x509_att.c')
-rw-r--r-- | crypto/x509/x509_att.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/x509/x509_att.c b/crypto/x509/x509_att.c index f1cd9df23e..317a45a4fa 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; } |