Ensure MD self_test ret codes are not hidden
Also fix a potential memory leak and an incorrect goto statement in sha1.c self_test
This commit is contained in:
parent
a21247ead7
commit
6a3f30514a
4 changed files with 42 additions and 25 deletions
|
@ -448,7 +448,7 @@ int mbedtls_sha256_self_test( int verbose )
|
|||
if( verbose != 0 )
|
||||
mbedtls_printf( " SHA-%d test #%d: ", 256 - k * 32, j + 1 );
|
||||
|
||||
if( mbedtls_sha256_starts_ext( &ctx, k ) != 0 )
|
||||
if( ( ret = mbedtls_sha256_starts_ext( &ctx, k ) ) != 0 )
|
||||
goto fail;
|
||||
|
||||
if( j == 2 )
|
||||
|
@ -456,23 +456,30 @@ int mbedtls_sha256_self_test( int verbose )
|
|||
memset( buf, 'a', buflen = 1000 );
|
||||
|
||||
for( j = 0; j < 1000; j++ )
|
||||
if( mbedtls_sha256_update_ext( &ctx, buf, buflen ) != 0 )
|
||||
{
|
||||
ret = mbedtls_sha256_update_ext( &ctx, buf, buflen );
|
||||
if( ret != 0 )
|
||||
goto fail;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if( mbedtls_sha256_update_ext( &ctx, sha256_test_buf[j],
|
||||
sha256_test_buflen[j] ) != 0 )
|
||||
goto fail;
|
||||
ret = mbedtls_sha256_update_ext( &ctx, sha256_test_buf[j],
|
||||
sha256_test_buflen[j] );
|
||||
if( ret != 0 )
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if( mbedtls_sha256_finish_ext( &ctx, sha256sum ) != 0 )
|
||||
if( ( ret = mbedtls_sha256_finish_ext( &ctx, sha256sum ) ) != 0 )
|
||||
goto fail;
|
||||
|
||||
|
||||
if( memcmp( sha256sum, sha256_test_sum[i], 32 - k * 4 ) != 0 )
|
||||
{
|
||||
ret = 1;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if( verbose != 0 )
|
||||
mbedtls_printf( "passed\n" );
|
||||
|
@ -487,8 +494,6 @@ fail:
|
|||
if( verbose != 0 )
|
||||
mbedtls_printf( "failed\n" );
|
||||
|
||||
ret = 1;
|
||||
|
||||
exit:
|
||||
mbedtls_sha256_free( &ctx );
|
||||
mbedtls_free( buf );
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue