From 4336de0c6392d98c32bc27717173130d5e7389aa Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Fri, 5 Jun 2015 14:23:27 +0100 Subject: [PATCH] Check ASN1_INTEGER_get for errors. Check return value when calling ASN1_INTEGER_get to retrieve a certificate serial number. If an error occurs (which will be caused by the value being out of range) revert to hex dump of serial number. Reviewed-by: Rich Salz --- crypto/asn1/t_x509.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crypto/asn1/t_x509.c b/crypto/asn1/t_x509.c index 377be399df..12a9ed4940 100644 --- a/crypto/asn1/t_x509.c +++ b/crypto/asn1/t_x509.c @@ -141,7 +141,13 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, bs = X509_get_serialNumber(x); if (bs->length <= (int)sizeof(long)) { - l = ASN1_INTEGER_get(bs); + ERR_set_mark(); + l = ASN1_INTEGER_get(bs); + ERR_pop_to_mark(); + } else { + l = -1; + } + if (l != -1) { if (bs->type == V_ASN1_NEG_INTEGER) { l = -l; neg = "-"; -- GitLab