Skip to content

Commit

Permalink
Initialize mbedtls_x509write_csr struct before USE_PSA_INIT(), mbedtl…
Browse files Browse the repository at this point in the history
…s_x509write_csr_free() will crash if uninitialized

When USE_PSA_INIT() failed because lack of seedfile, mbedtls_x509write_csr_free()
crashed when called on an unitialized mbedtls_x509write_csr struct.

This moves mbedtls_x509write_csr_init before calling USE_PSA_INIT(),
which could probably fail, and uses the same flow in x509_csr_check()
and x509_csr_check_opaque().

Signed-off-by: Neil Armstrong <[email protected]>
  • Loading branch information
superna9999 committed Jul 20, 2022
1 parent d5b1eb5 commit e607a74
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions tests/suites/test_suite_x509write.function
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,14 @@ void x509_csr_check( char * key_file, char * cert_req_check_file, int md_type,

memset( &rnd_info, 0x2a, sizeof( mbedtls_test_rnd_pseudo_info ) );

mbedtls_x509write_csr_init( &req );

USE_PSA_INIT( );

mbedtls_pk_init( &key );
TEST_ASSERT( mbedtls_pk_parse_keyfile( &key, key_file, NULL,
mbedtls_test_rnd_std_rand, NULL ) == 0 );

mbedtls_x509write_csr_init( &req );
mbedtls_x509write_csr_set_md_alg( &req, md_type );
mbedtls_x509write_csr_set_key( &req, &key );
TEST_ASSERT( mbedtls_x509write_csr_set_subject_name( &req, subject_name ) == 0 );
Expand Down Expand Up @@ -178,9 +179,12 @@ void x509_csr_check_opaque( char *key_file, int md_type, int key_usage,
const char *subject_name = "C=NL,O=PolarSSL,CN=PolarSSL Server 1";
mbedtls_test_rnd_pseudo_info rnd_info;

PSA_INIT( );
memset( &rnd_info, 0x2a, sizeof( mbedtls_test_rnd_pseudo_info ) );

mbedtls_x509write_csr_init( &req );

USE_PSA_INIT( );

md_alg_psa = mbedtls_psa_translate_md( (mbedtls_md_type_t) md_type );
TEST_ASSERT( md_alg_psa != MBEDTLS_MD_NONE );

Expand All @@ -199,7 +203,6 @@ void x509_csr_check_opaque( char *key_file, int md_type, int key_usage,
PSA_KEY_USAGE_SIGN_HASH,
PSA_ALG_NONE ) == 0 );

mbedtls_x509write_csr_init( &req );
mbedtls_x509write_csr_set_md_alg( &req, md_type );
mbedtls_x509write_csr_set_key( &req, &key );
TEST_ASSERT( mbedtls_x509write_csr_set_subject_name( &req, subject_name ) == 0 );
Expand Down

0 comments on commit e607a74

Please sign in to comment.