diff options
author | Andy Polyakov <appro@openssl.org> | 2018-07-06 13:16:40 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2018-08-01 16:14:16 +0200 |
commit | 7cca1f96bf82b22ab49f179bae7df1562d0a104b (patch) | |
tree | f118931c19bb9d25faa63d2f0ef9e275f4fa9dce | |
parent | d69f31fcc38878769c8c917f8724c5aef10fd847 (diff) |
bn/bn_lib.c: remove bn_check_top from bn_expand2.
Trouble is that addition is postponing expansion till carry is
calculated, and if addition carries, top word can be zero, which
triggers assertion in bn_check_top.
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6810)
(cherry picked from commit e42395e637c3507b80b25c7ed63236898822d2f1)
Resolved conflicts:
crypto/bn/bn_lib.c
-rw-r--r-- | crypto/bn/bn_lib.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/crypto/bn/bn_lib.c b/crypto/bn/bn_lib.c index f49c61cb5d..7ee80f4449 100644 --- a/crypto/bn/bn_lib.c +++ b/crypto/bn/bn_lib.c @@ -263,8 +263,6 @@ static BN_ULONG *bn_expand_internal(const BIGNUM *b, int words) const BN_ULONG *B; int i; - bn_check_top(b); - if (words > (INT_MAX / (4 * BN_BITS2))) { BNerr(BN_F_BN_EXPAND_INTERNAL, BN_R_BIGNUM_TOO_LONG); return NULL; @@ -398,8 +396,6 @@ BIGNUM *bn_dup_expand(const BIGNUM *b, int words) BIGNUM *bn_expand2(BIGNUM *b, int words) { - bn_check_top(b); - if (words > b->dmax) { BN_ULONG *a = bn_expand_internal(b, words); if (!a) @@ -433,7 +429,6 @@ BIGNUM *bn_expand2(BIGNUM *b, int words) assert(A == &(b->d[b->dmax])); } #endif - bn_check_top(b); return b; } |