summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorotto <>2003-09-25 19:53:59 +0000
committerotto <>2003-09-25 19:53:59 +0000
commitb2faba93ca8a0634c3af02d30651d3d4e81b019a (patch)
tree0c965cb7ed823a8b6e0c2d9d3f83af623430417d /src/lib
parent23e56282d50b1b5d7c331bccc6df913fa29b0cc2 (diff)
downloadopenbsd-b2faba93ca8a0634c3af02d30651d3d4e81b019a.tar.gz
openbsd-b2faba93ca8a0634c3af02d30651d3d4e81b019a.tar.bz2
openbsd-b2faba93ca8a0634c3af02d30651d3d4e81b019a.zip
Add extra calls to bn_fix_top() in BN_cmp(), since some functions may
leave an invalid BN. ok markus@ deraadt@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/bn/bn_lib.c3
-rw-r--r--src/lib/libssl/src/crypto/bn/bn_lib.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/libcrypto/bn/bn_lib.c b/src/lib/libcrypto/bn/bn_lib.c
index 463463cfcb..5e530d9474 100644
--- a/src/lib/libcrypto/bn/bn_lib.c
+++ b/src/lib/libcrypto/bn/bn_lib.c
@@ -702,6 +702,9 @@ int BN_cmp(const BIGNUM *a, const BIGNUM *b)
702 { gt=1; lt= -1; } 702 { gt=1; lt= -1; }
703 else { gt= -1; lt=1; } 703 else { gt= -1; lt=1; }
704 704
705 bn_fix_top(a);
706 bn_fix_top(b);
707
705 if (a->top > b->top) return(gt); 708 if (a->top > b->top) return(gt);
706 if (a->top < b->top) return(lt); 709 if (a->top < b->top) return(lt);
707 for (i=a->top-1; i>=0; i--) 710 for (i=a->top-1; i>=0; i--)
diff --git a/src/lib/libssl/src/crypto/bn/bn_lib.c b/src/lib/libssl/src/crypto/bn/bn_lib.c
index 463463cfcb..5e530d9474 100644
--- a/src/lib/libssl/src/crypto/bn/bn_lib.c
+++ b/src/lib/libssl/src/crypto/bn/bn_lib.c
@@ -702,6 +702,9 @@ int BN_cmp(const BIGNUM *a, const BIGNUM *b)
702 { gt=1; lt= -1; } 702 { gt=1; lt= -1; }
703 else { gt= -1; lt=1; } 703 else { gt= -1; lt=1; }
704 704
705 bn_fix_top(a);
706 bn_fix_top(b);
707
705 if (a->top > b->top) return(gt); 708 if (a->top > b->top) return(gt);
706 if (a->top < b->top) return(lt); 709 if (a->top < b->top) return(lt);
707 for (i=a->top-1; i>=0; i--) 710 for (i=a->top-1; i>=0; i--)