diff --git a/ChangeLog b/ChangeLog index a11bab04f..f2d1a900c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -61,6 +61,10 @@ Changes they are enabled. * Return from various debugging routines immediately if the provided SSL context is unset. + * Remove dead code from bignum.c in the default configuration. + Found by Coverity, reported and fixed by Peter Kolbus (Garmin). Fixes #2309. + * Add test for minimal value of MBEDTLS_MPI_WINDOW_SIZE to all.sh. + Contributed by Peter Kolbus (Garmin). = mbed TLS 2.16.0 branch released 2018-12-21 diff --git a/library/bignum.c b/library/bignum.c index 87015af0c..47e4529be 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1869,8 +1869,10 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, wsize = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 : ( i > 79 ) ? 4 : ( i > 23 ) ? 3 : 1; +#if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) if( wsize > MBEDTLS_MPI_WINDOW_SIZE ) wsize = MBEDTLS_MPI_WINDOW_SIZE; +#endif j = N->n + 1; MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j ) ); diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 7d6f91233..53fbc7e25 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -976,6 +976,16 @@ support_test_mx32 () { esac } +component_test_min_mpi_window_size () { + msg "build: Default + MBEDTLS_MPI_WINDOW_SIZE=1 (ASan build)" # ~ 10s + scripts/config.pl set MBEDTLS_MPI_WINDOW_SIZE 1 + CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . + make + + msg "test: MBEDTLS_MPI_WINDOW_SIZE=1 - main suites (inc. selftests) (ASan build)" # ~ 10s + make test +} + component_test_have_int32 () { msg "build: gcc, force 32-bit bignum limbs" scripts/config.pl unset MBEDTLS_HAVE_ASM