From 958e6a75a1e15d155c1bfb9b8d0a0d960489d97f Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Wed, 11 Jan 2012 21:12:47 +0000 Subject: [PATCH] asn1/t_x509.c: fix serial number print, harmonize with a_int.c [from HEAD]. PR: 2675 Submitted by: Annie Yousar --- crypto/asn1/a_int.c | 4 ++-- crypto/asn1/t_x509.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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="-"; -- 2.40.0