From: Andy Polyakov Date: Wed, 11 Jan 2012 21:12:22 +0000 (+0000) Subject: asn1/t_x509.c: fix serial number print, harmonize with a_int.c. X-Git-Tag: master-pre-reformat~1937 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6e913f9901c0d7b39fc9a07841be6e944ebaa9bd;p=openssl asn1/t_x509.c: fix serial number print, harmonize with a_int.c. PR: 2675 Submitted by: Annie Yousar --- diff --git a/crypto/asn1/a_int.c b/crypto/asn1/a_int.c index 3348b8762c..ad0d2506f6 100644 --- a/crypto/asn1/a_int.c +++ b/crypto/asn1/a_int.c @@ -386,8 +386,8 @@ long ASN1_INTEGER_get(const ASN1_INTEGER *a) if (a->length > (int)sizeof(long)) { - /* hmm... a bit ugly */ - return(0xffffffffL); + /* hmm... a bit ugly, return all ones */ + return -1; } if (a->data == NULL) return 0; diff --git a/crypto/asn1/t_x509.c b/crypto/asn1/t_x509.c index db88f3a3e1..4f5d28f1ab 100644 --- a/crypto/asn1/t_x509.c +++ b/crypto/asn1/t_x509.c @@ -138,10 +138,10 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag) if (BIO_write(bp," Serial Number:",22) <= 0) goto err; bs=X509_get_serialNumber(x); - if (bs->length <= 4) + if (bs->length <= sizeof(long)) { l=ASN1_INTEGER_get(bs); - if (l < 0) + if (bs->type == V_ASN1_NEG_INTEGER) { l= -l; neg="-";