From: Dr. Stephen Henson Date: Fri, 4 Mar 2016 18:04:46 +0000 (+0000) Subject: Don't shift serial number into sign bit X-Git-Tag: OpenSSL_1_0_1t~33 X-Git-Url: https://git.openssl.org/?a=commitdiff_plain;ds=sidebyside;h=01992513186f3954934d08ef500bfd7cd55306a0;p=openssl.git Don't shift serial number into sign bit Reviewed-by: Rich Salz (cherry picked from commit 01c32b5e448f6d42a23ff16bdc6bb0605287fa6f) --- diff --git a/crypto/asn1/t_x509.c b/crypto/asn1/t_x509.c index 4e7c45dd5d..4f69b5113f 100644 --- a/crypto/asn1/t_x509.c +++ b/crypto/asn1/t_x509.c @@ -140,7 +140,8 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, goto err; bs = X509_get_serialNumber(x); - if (bs->length <= (int)sizeof(long)) { + if (bs->length < (int)sizeof(long) + || (bs->length == sizeof(long) && (bs->data[0] & 0x80) == 0)) { l = ASN1_INTEGER_get(bs); if (bs->type == V_ASN1_NEG_INTEGER) { l = -l;