]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix Coverity 1498612: integer overflow
authorPauli <pauli@openssl.org>
Wed, 16 Mar 2022 03:13:25 +0000 (14:13 +1100)
committerPauli <pauli@openssl.org>
Fri, 25 Mar 2022 06:32:44 +0000 (17:32 +1100)
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)

(cherry picked from commit 81487b65b9eb8148471e729b8c1959521d62c69e)

crypto/ec/curve448/curve448.c

index 12d97f06795b50966e094a30380f9be33055df39..3aff9802092c773f4e14408c83949910d46587ca 100644 (file)
@@ -577,6 +577,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);