Skip to content

Commit

Permalink
Fix IAR warnings
Browse files Browse the repository at this point in the history
IAR was warning that conditional execution could bypass initialisation of
variables, although those same variables were not used uninitialised. Fix
this along with some other IAR warnings.

Signed-off-by: Paul Elliott <[email protected]>
  • Loading branch information
paul-elliott-arm committed Feb 13, 2023
1 parent 79e0433 commit fc820d9
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
2 changes: 1 addition & 1 deletion ChangeLog.d/fix-iar-warnings.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Bugfix
* Fix IAR compiler warnings. Contributed by Glenn Strauss in #3835.
* Fix IAR compiler warnings. Fixes #6924.
2 changes: 1 addition & 1 deletion library/bignum.c
Original file line number Diff line number Diff line change
Expand Up @@ -2063,6 +2063,7 @@ int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
size_t window_bitsize;
size_t i, j, nblimbs;
size_t bufsize, nbits;
size_t exponent_bits_in_window = 0;
mbedtls_mpi_uint ei, mm, state;
mbedtls_mpi RR, T, W[(size_t) 1 << MBEDTLS_MPI_WINDOW_SIZE], WW, Apos;
int neg;
Expand Down Expand Up @@ -2236,7 +2237,6 @@ int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
nblimbs = E->n;
bufsize = 0;
nbits = 0;
size_t exponent_bits_in_window = 0;
state = 0;

while (1) {
Expand Down
8 changes: 5 additions & 3 deletions library/ecp.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,8 @@ static int ecp_drbg_seed(ecp_drbg_context *ctx,
int ret;
unsigned char secret_bytes[MBEDTLS_ECP_MAX_BYTES];
/* The list starts with strong hashes */
const mbedtls_md_type_t md_type = mbedtls_md_list()[0];
const mbedtls_md_type_t md_type =
(const mbedtls_md_type_t) (mbedtls_md_list()[0]);
const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(md_type);

if (secret_len > MBEDTLS_ECP_MAX_BYTES) {
Expand Down Expand Up @@ -2062,12 +2063,13 @@ static int ecp_mul_comb_core(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
} else
#endif
{
int have_rng = 1;

/* Start with a non-zero point and randomize its coordinates */
i = d;
MBEDTLS_MPI_CHK(ecp_select_comb(grp, R, T, T_size, x[i]));
MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&R->Z, 1));

int have_rng = 1;
#if defined(MBEDTLS_ECP_NO_INTERNAL_RNG)
if (f_rng == NULL) {
have_rng = 0;
Expand Down Expand Up @@ -2172,6 +2174,7 @@ static int ecp_mul_comb_after_precomp(const mbedtls_ecp_group *grp,
unsigned char parity_trick;
unsigned char k[COMB_MAX_D + 1];
mbedtls_ecp_point *RR = R;
int have_rng = 1;

#if defined(MBEDTLS_ECP_RESTARTABLE)
if (rs_ctx != NULL && rs_ctx->rsm != NULL) {
Expand Down Expand Up @@ -2208,7 +2211,6 @@ static int ecp_mul_comb_after_precomp(const mbedtls_ecp_group *grp,
*
* Avoid the leak by randomizing coordinates before we normalize them.
*/
int have_rng = 1;
#if defined(MBEDTLS_ECP_NO_INTERNAL_RNG)
if (f_rng == NULL) {
have_rng = 0;
Expand Down

0 comments on commit fc820d9

Please sign in to comment.