mirror of
				https://github.com/yuzu-emu/mbedtls.git
				synced 2025-11-04 14:45:08 +00:00 
			
		
		
		
	Add a test case calling ssl_set_hostname twice to test_suite_ssl. When run in CMake build mode ASan, this catches the current leak, but will hopefully be fine with the new version.
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/* BEGIN_HEADER */
 | 
						|
#include <mbedtls/ssl.h>
 | 
						|
#include <mbedtls/ssl_internal.h>
 | 
						|
/* END_HEADER */
 | 
						|
 | 
						|
/* BEGIN_DEPENDENCIES
 | 
						|
 * depends_on:MBEDTLS_SSL_TLS_C
 | 
						|
 * END_DEPENDENCIES
 | 
						|
 */
 | 
						|
 | 
						|
/* BEGIN_CASE depends_on:MBEDTLS_SSL_DTLS_ANTI_REPLAY */
 | 
						|
void ssl_dtls_replay( char *prevs, char *new, int ret )
 | 
						|
{
 | 
						|
    mbedtls_ssl_context ssl;
 | 
						|
    mbedtls_ssl_config conf;
 | 
						|
    char *end_prevs = prevs + strlen( prevs ) + 1;
 | 
						|
 | 
						|
    mbedtls_ssl_init( &ssl );
 | 
						|
    mbedtls_ssl_config_init( &conf );
 | 
						|
 | 
						|
    TEST_ASSERT( mbedtls_ssl_config_defaults( &conf,
 | 
						|
                 MBEDTLS_SSL_IS_CLIENT,
 | 
						|
                 MBEDTLS_SSL_TRANSPORT_DATAGRAM,
 | 
						|
                 MBEDTLS_SSL_PRESET_DEFAULT ) == 0 );
 | 
						|
    TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
 | 
						|
 | 
						|
    /* Read previous record numbers */
 | 
						|
    for( ; end_prevs - prevs >= 13; prevs += 13 )
 | 
						|
    {
 | 
						|
        prevs[12] = '\0';
 | 
						|
        unhexify( ssl.in_ctr + 2, prevs );
 | 
						|
        mbedtls_ssl_dtls_replay_update( &ssl );
 | 
						|
    }
 | 
						|
 | 
						|
    /* Check new number */
 | 
						|
    unhexify( ssl.in_ctr + 2, new );
 | 
						|
    TEST_ASSERT( mbedtls_ssl_dtls_replay_check( &ssl ) == ret );
 | 
						|
 | 
						|
    mbedtls_ssl_free( &ssl );
 | 
						|
    mbedtls_ssl_config_free( &conf );
 | 
						|
}
 | 
						|
/* END_CASE */
 | 
						|
 | 
						|
/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */
 | 
						|
void ssl_set_hostname_twice( char *hostname0, char *hostname1 )
 | 
						|
{
 | 
						|
    mbedtls_ssl_context ssl;
 | 
						|
    mbedtls_ssl_init( &ssl );
 | 
						|
 | 
						|
    TEST_ASSERT( mbedtls_ssl_set_hostname( &ssl, hostname0 ) == 0 );
 | 
						|
    TEST_ASSERT( mbedtls_ssl_set_hostname( &ssl, hostname1 ) == 0 );
 | 
						|
 | 
						|
    mbedtls_ssl_free( &ssl );
 | 
						|
}
 | 
						|
/* END_CASE */ |