Use distinct variables for distinct purposes

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
This commit is contained in:
Manuel Pégourié-Gonnard 2021-07-07 10:48:26 +02:00
parent 40e26b2600
commit 87e8b5ccaa

View file

@ -163,7 +163,7 @@ int dtls_srtp_key_derivation( void *p_expkey,
int ssl_check_record( mbedtls_ssl_context const *ssl, int ssl_check_record( mbedtls_ssl_context const *ssl,
unsigned char const *buf, size_t len ) unsigned char const *buf, size_t len )
{ {
int ret; int my_ret = 0, ret_cr1, ret_cr2;
unsigned char *tmp_buf; unsigned char *tmp_buf;
/* Record checking may modify the input buffer, /* Record checking may modify the input buffer,
@ -173,23 +173,21 @@ int ssl_check_record( mbedtls_ssl_context const *ssl,
return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); return( MBEDTLS_ERR_SSL_ALLOC_FAILED );
memcpy( tmp_buf, buf, len ); memcpy( tmp_buf, buf, len );
ret = mbedtls_ssl_check_record( ssl, tmp_buf, len ); ret_cr1 = mbedtls_ssl_check_record( ssl, tmp_buf, len );
if( ret != MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ) if( ret_cr1 != MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE )
{ {
int ret_repeated;
/* Test-only: Make sure that mbedtls_ssl_check_record() /* Test-only: Make sure that mbedtls_ssl_check_record()
* doesn't alter state. */ * doesn't alter state. */
memcpy( tmp_buf, buf, len ); /* Restore buffer */ memcpy( tmp_buf, buf, len ); /* Restore buffer */
ret_repeated = mbedtls_ssl_check_record( ssl, tmp_buf, len ); ret_cr2 = mbedtls_ssl_check_record( ssl, tmp_buf, len );
if( ret != ret_repeated ) if( ret_cr2 != ret_cr1 )
{ {
mbedtls_printf( "mbedtls_ssl_check_record() returned inconsistent results.\n" ); mbedtls_printf( "mbedtls_ssl_check_record() returned inconsistent results.\n" );
ret = -1; my_ret = -1;
goto cleanup; goto cleanup;
} }
switch( ret ) switch( ret_cr1 )
{ {
case 0: case 0:
break; break;
@ -197,24 +195,21 @@ int ssl_check_record( mbedtls_ssl_context const *ssl,
case MBEDTLS_ERR_SSL_INVALID_RECORD: case MBEDTLS_ERR_SSL_INVALID_RECORD:
if( opt.debug_level > 1 ) if( opt.debug_level > 1 )
mbedtls_printf( "mbedtls_ssl_check_record() detected invalid record.\n" ); mbedtls_printf( "mbedtls_ssl_check_record() detected invalid record.\n" );
ret = 0;
break; break;
case MBEDTLS_ERR_SSL_INVALID_MAC: case MBEDTLS_ERR_SSL_INVALID_MAC:
if( opt.debug_level > 1 ) if( opt.debug_level > 1 )
mbedtls_printf( "mbedtls_ssl_check_record() detected unauthentic record.\n" ); mbedtls_printf( "mbedtls_ssl_check_record() detected unauthentic record.\n" );
ret = 0;
break; break;
case MBEDTLS_ERR_SSL_UNEXPECTED_RECORD: case MBEDTLS_ERR_SSL_UNEXPECTED_RECORD:
if( opt.debug_level > 1 ) if( opt.debug_level > 1 )
mbedtls_printf( "mbedtls_ssl_check_record() detected unexpected record.\n" ); mbedtls_printf( "mbedtls_ssl_check_record() detected unexpected record.\n" );
ret = 0;
break; break;
default: default:
mbedtls_printf( "mbedtls_ssl_check_record() failed fatally with -%#04x.\n", (unsigned int) -ret ); mbedtls_printf( "mbedtls_ssl_check_record() failed fatally with -%#04x.\n", (unsigned int) -ret_cr1 );
ret = -1; my_ret = -1;
goto cleanup; goto cleanup;
} }
@ -224,7 +219,7 @@ int ssl_check_record( mbedtls_ssl_context const *ssl,
cleanup: cleanup:
mbedtls_free( tmp_buf ); mbedtls_free( tmp_buf );
return( ret ); return( my_ret );
} }
#endif /* MBEDTLS_SSL_RECORD_CHECKING */ #endif /* MBEDTLS_SSL_RECORD_CHECKING */