[openssl] master update

Dr. Paul Dale pauli at openssl.org
Sun Dec 12 22:35:43 UTC 2021


The branch master has been updated
       via  23effeb81fbcdc436b1e871e7fff34456d6bfbaf (commit)
      from  391ce6d980c4f8f474ed28d1ea83849cc9a00100 (commit)


- Log -----------------------------------------------------------------
commit 23effeb81fbcdc436b1e871e7fff34456d6bfbaf
Author: Pauli <ppzgs1 at gmail.com>
Date:   Wed Nov 24 11:38:51 2021 +1000

    Fix Coverity 1494385 logically dead code.
    
    Reviewed-by: Dmitry Belyavskiy <beldmit at gmail.com>
    (Merged from https://github.com/openssl/openssl/pull/17123)

-----------------------------------------------------------------------

Summary of changes:
 crypto/bn/rsaz_exp_x2.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/crypto/bn/rsaz_exp_x2.c b/crypto/bn/rsaz_exp_x2.c
index 93f104f68e..3371b6c6d7 100644
--- a/crypto/bn/rsaz_exp_x2.c
+++ b/crypto/bn/rsaz_exp_x2.c
@@ -15,6 +15,7 @@
  */
 
 #include <openssl/opensslconf.h>
+#include <openssl/crypto.h>
 #include "rsaz_exp.h"
 
 #ifndef RSAZ_ENABLED
@@ -404,14 +405,23 @@ int RSAZ_mod_exp_x2_ifma256(BN_ULONG *out,
 
     /* Exponentiation */
     {
-        int rem = modulus_bitsize % exp_win_size;
-        int delta = rem ? rem : exp_win_size;
-        BN_ULONG table_idx_mask = exp_win_mask;
+        const int rem = modulus_bitsize % exp_win_size;
+        const BN_ULONG table_idx_mask = exp_win_mask;
 
-        int exp_bit_no = modulus_bitsize - delta;
+        int exp_bit_no = modulus_bitsize - rem;
         int exp_chunk_no = exp_bit_no / 64;
         int exp_chunk_shift = exp_bit_no % 64;
 
+        /*
+         * If rem == 0, then
+         *      exp_bit_no = modulus_bitsize - exp_win_size
+         * However, this isn't possible because rem is { 1024, 1536, 2048 } % 5
+         * which is { 4, 1, 3 } respectively.
+         *
+         * If this assertion ever fails the fix above is easy.
+         */
+        OPENSSL_assert(rem != 0);
+
         /* Process 1-st exp window - just init result */
         BN_ULONG red_table_idx_0 = expz[exp_chunk_no + 0 * (exp_digits + 1)];
         BN_ULONG red_table_idx_1 = expz[exp_chunk_no + 1 * (exp_digits + 1)];


More information about the openssl-commits mailing list