Skip to content

Commit 56c0f77

Browse files
committed
Return invalid argument error in case of zero or negative handle for generators
1 parent 07d523c commit 56c0f77

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

components/TARGET_PSA/services/crypto/COMPONENT_PSA_SRV_IPC/psa_crypto_spm.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -966,6 +966,9 @@ psa_status_t psa_get_generator_capacity( const psa_crypto_generator_t *generator
966966
psa_invec_t in_vec = { &psa_crypto_ipc, sizeof( psa_crypto_ipc ) };
967967
psa_outvec_t out_vec = { capacity, sizeof( *capacity ) };
968968

969+
if( generator->handle <= 0 )
970+
return( PSA_ERROR_INVALID_ARGUMENT );
971+
969972
err_call = psa_call( generator->handle, &in_vec, 1, &out_vec, 1 );
970973

971974
if( err_call < 0 )
@@ -982,6 +985,10 @@ psa_status_t psa_generator_read( psa_crypto_generator_t *generator,
982985
psa_crypto_ipc.func = PSA_GENERATOR_READ;
983986
psa_invec_t in_vec = { &psa_crypto_ipc, sizeof( psa_crypto_ipc ) };
984987
psa_outvec_t out_vec = { output, output_length };
988+
989+
if( generator->handle <= 0 )
990+
return( PSA_ERROR_INVALID_ARGUMENT );
991+
985992
err_call = psa_call( generator->handle, &in_vec, 1, &out_vec, 1 );
986993

987994
if( err_call < 0 )
@@ -1001,7 +1008,10 @@ psa_status_t psa_generator_import_key( psa_key_slot_t key,
10011008
psa_invec_t in_vec[3] = { { &psa_crypto_ipc, sizeof( psa_crypto_ipc ) },
10021009
{ &type, sizeof( type ) },
10031010
{ &bits, sizeof( bits ) } };
1004-
1011+
1012+
if( generator->handle <= 0 )
1013+
return( PSA_ERROR_INVALID_ARGUMENT );
1014+
10051015
err_call = psa_call( generator->handle, in_vec, 3, NULL, 0 );
10061016

10071017
if( err_call < 0 )

0 commit comments

Comments
 (0)