From 31d6a8a22cecb79d522b72fa6a69e2e3d19c1bb4 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 26 Jun 2025 18:33:57 +0200 Subject: [PATCH] Use a null pointer for empty data Don't allocate an extra byte when a binary input is empty. This could hide bugs where the library tries to access one byte in an empty buffer. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_aes.function | 4 ++-- tests/suites/test_suite_base64.function | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function index 9118a98655e2..81135f220f4e 100644 --- a/tests/suites/test_suite_aes.function +++ b/tests/suites/test_suite_aes.function @@ -306,7 +306,7 @@ void aes_encrypt_xts(char *hex_key_string, char *hex_data_unit_string, dst = mbedtls_test_unhexify_alloc(hex_dst_string, &dst_len); TEST_ASSERT(src_len == dst_len); - output = mbedtls_test_zero_alloc(dst_len); + TEST_CALLOC(output, dst_len); TEST_ASSERT(mbedtls_aes_xts_setkey_enc(&ctx, key, key_len * 8) == 0); TEST_ASSERT(mbedtls_aes_crypt_xts(&ctx, MBEDTLS_AES_ENCRYPT, src_len, @@ -350,7 +350,7 @@ void aes_decrypt_xts(char *hex_key_string, char *hex_data_unit_string, dst = mbedtls_test_unhexify_alloc(hex_dst_string, &dst_len); TEST_ASSERT(src_len == dst_len); - output = mbedtls_test_zero_alloc(dst_len); + TEST_CALLOC(output, dst_len); TEST_ASSERT(mbedtls_aes_xts_setkey_dec(&ctx, key, key_len * 8) == 0); TEST_ASSERT(mbedtls_aes_crypt_xts(&ctx, MBEDTLS_AES_DECRYPT, src_len, diff --git a/tests/suites/test_suite_base64.function b/tests/suites/test_suite_base64.function index e351ad8a25be..3a008ea9e964 100644 --- a/tests/suites/test_suite_base64.function +++ b/tests/suites/test_suite_base64.function @@ -109,7 +109,7 @@ void base64_encode_hex(data_t *src, char *dst, int dst_buf_size, unsigned char *res = NULL; size_t len; - res = mbedtls_test_zero_alloc(dst_buf_size); + TEST_CALLOC(res, dst_buf_size); TEST_CF_SECRET(src->x, src->len); TEST_ASSERT(mbedtls_base64_encode(res, dst_buf_size, &len, src->x, src->len) == result); @@ -136,7 +136,7 @@ void base64_decode_hex(char *src, data_t *dst, int dst_buf_size, unsigned char *res = NULL; size_t len; - res = mbedtls_test_zero_alloc(dst_buf_size); + TEST_CALLOC(res, dst_buf_size); TEST_ASSERT(mbedtls_base64_decode(res, dst_buf_size, &len, (unsigned char *) src, strlen(src)) == result);