mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-07-30 22:43:08 +03:00
Reject NULL original_output with non-NULL output
If we have a copy buffer but no original to copy back to, there is not much sensible we can do. The psa_crypto_buffer_copy_t state is invalid. Signed-off-by: David Horstmann <david.horstmann@arm.com>
This commit is contained in:
@ -5603,6 +5603,12 @@ error:
|
|||||||
psa_status_t psa_crypto_copy_and_free(psa_crypto_buffer_copy_t *buffers)
|
psa_status_t psa_crypto_copy_and_free(psa_crypto_buffer_copy_t *buffers)
|
||||||
{
|
{
|
||||||
if (buffers->output != NULL) {
|
if (buffers->output != NULL) {
|
||||||
|
if (buffers->output_original == NULL) {
|
||||||
|
/* Output is non-NULL but original output is NULL. The argument
|
||||||
|
* buffers is invalid. Return an error as we have no original to
|
||||||
|
* copy back to. */
|
||||||
|
return PSA_ERROR_INVALID_ARGUMENT;
|
||||||
|
}
|
||||||
memcpy(buffers->output_original, buffers->output, buffers->output_len);
|
memcpy(buffers->output_original, buffers->output, buffers->output_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4080,3 +4080,9 @@ psa_crypto_copy_and_free:1:0:0:20:0:PSA_SUCCESS
|
|||||||
|
|
||||||
PSA buffers copy and free, null output
|
PSA buffers copy and free, null output
|
||||||
psa_crypto_copy_and_free:0:20:1:0:0:PSA_SUCCESS
|
psa_crypto_copy_and_free:0:20:1:0:0:PSA_SUCCESS
|
||||||
|
|
||||||
|
PSA buffers copy and free, null output_original
|
||||||
|
psa_crypto_copy_and_free:0:20:0:20:1:PSA_ERROR_INVALID_ARGUMENT
|
||||||
|
|
||||||
|
PSA buffers copy and free, null output_original and null output
|
||||||
|
psa_crypto_copy_and_free:0:20:1:0:1:PSA_SUCCESS
|
||||||
|
Reference in New Issue
Block a user