1
0
mirror of https://github.com/Mbed-TLS/mbedtls.git synced 2025-08-01 10:06:53 +03:00

Make TEST_CALLOC_NONNULL more robust

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
Dave Rodgman
2023-09-19 18:30:25 +01:00
committed by Gilles Peskine
parent 72aa683aae
commit 3ca2f5cd01

View File

@ -170,12 +170,18 @@
* \param item_count Number of elements to allocate. * \param item_count Number of elements to allocate.
* This expression may be evaluated multiple times. * This expression may be evaluated multiple times.
* *
* Note: if passing size 0, mbedtls_calloc may return NULL. In this case,
* we reattempt to allocate with the smallest possible buffer to assure a
* non-NULL pointer.
*/ */
#define TEST_CALLOC_NONNULL(pointer, item_count) \ #define TEST_CALLOC_NONNULL(pointer, item_count) \
do { \ do { \
TEST_ASSERT((pointer) == NULL); \ TEST_ASSERT((pointer) == NULL); \
(pointer) = mbedtls_calloc(sizeof(*(pointer)), \ (pointer) = mbedtls_calloc(sizeof(*(pointer)), \
(item_count)); \ (item_count)); \
if (((pointer) == NULL) && ((item_count) == 0)) { \
(pointer) = mbedtls_calloc(1, 1); \
} \
TEST_ASSERT((pointer) != NULL); \ TEST_ASSERT((pointer) != NULL); \
} while (0) } while (0)