Fix Coverity 1494385 logically dead code.

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/17123)
This commit is contained in:
Pauli 2021-11-24 11:38:51 +10:00 committed by Pauli
parent 391ce6d980
commit 23effeb81f

View File

@ -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)];