Due to recent debugging bursts, openssl should be more or less solid
authorGeoff Thorpe <geoff@openssl.org>
Tue, 25 Nov 2003 21:07:59 +0000 (21:07 +0000)
committerGeoff Thorpe <geoff@openssl.org>
Tue, 25 Nov 2003 21:07:59 +0000 (21:07 +0000)
against inconsistent BIGNUMs coming out of any of its API functions. So
this change no longer "fixes" the bn_print.c functions, but it makes for
cleaner code. This patch was a part of ticket 697.

PR: 697
Submitted by: Otto Moerbeek
Reviewed by: Geoff Thorpe

crypto/bn/bn_print.c

index 5b5eb8f..4bc51d3 100644 (file)
@@ -79,7 +79,7 @@ char *BN_bn2hex(const BIGNUM *a)
                }
        p=buf;
        if (a->neg) *(p++)='-';
-       if (a->top == 0) *(p++)='0';
+       if (BN_is_zero(a)) *(p++)='0';
        for (i=a->top-1; i >=0; i--)
                {
                for (j=BN_BITS2-8; j >= 0; j-=8)
@@ -122,7 +122,7 @@ char *BN_bn2dec(const BIGNUM *a)
        p=buf;
        lp=bn_data;
        if (t->neg) *(p++)='-';
-       if (t->top == 0)
+       if (BN_is_zero(t))
                {
                *(p++)='0';
                *(p++)='\0';
@@ -301,7 +301,7 @@ int BN_print(BIO *bp, const BIGNUM *a)
        int ret=0;
 
        if ((a->neg) && (BIO_write(bp,"-",1) != 1)) goto end;
-       if ((a->top == 0) && (BIO_write(bp,"0",1) != 1)) goto end;
+       if (BN_is_zero(a) && (BIO_write(bp,"0",1) != 1)) goto end;
        for (i=a->top-1; i >=0; i--)
                {
                for (j=BN_BITS2-4; j >= 0; j-=4)