summaryrefslogtreecommitdiff
path: root/crypto/ec
diff options
context:
space:
mode:
authorPauli <pauli@openssl.org>2022-03-16 14:13:25 +1100
committerPauli <pauli@openssl.org>2022-03-25 17:31:37 +1100
commit81487b65b9eb8148471e729b8c1959521d62c69e (patch)
treee9b1a5006b767159f122e9b77d3fb278e6fada42 /crypto/ec
parent288e9680399d3a755861d309058dda2fb48af8bf (diff)
downloadopenssl-new-81487b65b9eb8148471e729b8c1959521d62c69e.tar.gz
Fix Coverity 1498612: integer overflow
The assert added cannot ever fail because (current & 0xFFFF) != 0 from the while loop and the trailing zero bit count therefore cannot be as large as 32. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/17892)
Diffstat (limited to 'crypto/ec')
-rw-r--r--crypto/ec/curve448/curve448.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/ec/curve448/curve448.c b/crypto/ec/curve448/curve448.c
index 9b9786da8f..4db72cd28d 100644
--- a/crypto/ec/curve448/curve448.c
+++ b/crypto/ec/curve448/curve448.c
@@ -586,6 +586,7 @@ static int recode_wnaf(struct smvt_control *control,
int32_t delta = odd & mask;
assert(position >= 0);
+ assert(pos < 32); /* can't fail since current & 0xFFFF != 0 */
if (odd & (1 << (table_bits + 1)))
delta -= (1 << (table_bits + 1));
current -= delta * (1 << pos);