Fix memory leaks in CMAC tests
This commit is contained in:
parent
8abc6b86f9
commit
d444358247
2 changed files with 15 additions and 8 deletions
|
@ -737,19 +737,19 @@ static int cmac_test_subkeys( int verbose,
|
||||||
return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE );
|
return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE );
|
||||||
}
|
}
|
||||||
|
|
||||||
mbedtls_cipher_init( &ctx );
|
|
||||||
|
|
||||||
for( i = 0; i < num_tests; i++ )
|
for( i = 0; i < num_tests; i++ )
|
||||||
{
|
{
|
||||||
if( verbose != 0 )
|
if( verbose != 0 )
|
||||||
mbedtls_printf( " %s CMAC subkey #%u: ", testname, i + 1 );
|
mbedtls_printf( " %s CMAC subkey #%u: ", testname, i + 1 );
|
||||||
|
|
||||||
|
mbedtls_cipher_init( &ctx );
|
||||||
|
|
||||||
if( ( ret = mbedtls_cipher_setup( &ctx, cipher_info ) ) != 0 )
|
if( ( ret = mbedtls_cipher_setup( &ctx, cipher_info ) ) != 0 )
|
||||||
{
|
{
|
||||||
if( verbose != 0 )
|
if( verbose != 0 )
|
||||||
mbedtls_printf( "test execution failed\n" );
|
mbedtls_printf( "test execution failed\n" );
|
||||||
|
|
||||||
goto exit;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( ret = mbedtls_cipher_setkey( &ctx, key, keybits,
|
if( ( ret = mbedtls_cipher_setkey( &ctx, key, keybits,
|
||||||
|
@ -758,7 +758,7 @@ static int cmac_test_subkeys( int verbose,
|
||||||
if( verbose != 0 )
|
if( verbose != 0 )
|
||||||
mbedtls_printf( "test execution failed\n" );
|
mbedtls_printf( "test execution failed\n" );
|
||||||
|
|
||||||
goto exit;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = cmac_generate_subkeys( &ctx, K1, K2 );
|
ret = cmac_generate_subkeys( &ctx, K1, K2 );
|
||||||
|
@ -766,7 +766,8 @@ static int cmac_test_subkeys( int verbose,
|
||||||
{
|
{
|
||||||
if( verbose != 0 )
|
if( verbose != 0 )
|
||||||
mbedtls_printf( "failed\n" );
|
mbedtls_printf( "failed\n" );
|
||||||
goto exit;
|
|
||||||
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( ret = memcmp( K1, subkeys, block_size ) ) != 0 ||
|
if( ( ret = memcmp( K1, subkeys, block_size ) ) != 0 ||
|
||||||
|
@ -774,16 +775,22 @@ static int cmac_test_subkeys( int verbose,
|
||||||
{
|
{
|
||||||
if( verbose != 0 )
|
if( verbose != 0 )
|
||||||
mbedtls_printf( "failed\n" );
|
mbedtls_printf( "failed\n" );
|
||||||
goto exit;
|
|
||||||
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( verbose != 0 )
|
if( verbose != 0 )
|
||||||
mbedtls_printf( "passed\n" );
|
mbedtls_printf( "passed\n" );
|
||||||
|
|
||||||
|
mbedtls_cipher_free( &ctx );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
goto exit;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
mbedtls_cipher_free( &ctx );
|
mbedtls_cipher_free( &ctx );
|
||||||
|
|
||||||
|
exit:
|
||||||
return( ret );
|
return( ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,6 @@ void mbedtls_cmac_null_args( )
|
||||||
NULL ) ==
|
NULL ) ==
|
||||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||||
|
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
mbedtls_cipher_free( &ctx );
|
mbedtls_cipher_free( &ctx );
|
||||||
}
|
}
|
||||||
|
@ -114,6 +113,7 @@ void mbedtls_cmac_setkey( int cipher_type, int key_size,
|
||||||
TEST_ASSERT( ( cipher_info = mbedtls_cipher_info_from_type( cipher_type ) )
|
TEST_ASSERT( ( cipher_info = mbedtls_cipher_info_from_type( cipher_type ) )
|
||||||
!= NULL );
|
!= NULL );
|
||||||
|
|
||||||
|
memset( buf, 0x2A, sizeof( buf ) );
|
||||||
TEST_ASSERT( ( result == mbedtls_cipher_cmac( cipher_info, key, key_size,
|
TEST_ASSERT( ( result == mbedtls_cipher_cmac( cipher_info, key, key_size,
|
||||||
buf, 16, tmp ) ) != 0 );
|
buf, 16, tmp ) ) != 0 );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue