asn1/t_x509.c: fix serial number print, harmonize with a_int.c [from HEAD].
authorAndy Polyakov <appro@openssl.org>
Thu, 12 Jan 2012 16:36:30 +0000 (16:36 +0000)
committerAndy Polyakov <appro@openssl.org>
Thu, 12 Jan 2012 16:36:30 +0000 (16:36 +0000)
PR: 2675
Submitted by: Annie Yousar

crypto/asn1/a_int.c
crypto/asn1/t_x509.c

index 3348b8762cc4026bbad7508be9385e43aeb884dc..ad0d2506f63203679814cd36018f1dc9c4221b91 100644 (file)
@@ -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;
index e061f2ffadc966e56ef40028f9e52a549040dd0f..89e7a7f546e36b41cdf895219c6c28e8bda5ae8b 100644 (file)
@@ -140,7 +140,7 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
                if (bs->length <= 4)
                        {
                        l=ASN1_INTEGER_get(bs);
-                       if (l < 0)
+                       if (bs->type == V_ASN1_NEG_INTEGER)
                                {
                                l= -l;
                                neg="-";