diff --git a/src/test/func/malloc/malloc.cc b/src/test/func/malloc/malloc.cc index 8974e3a..b3dd268 100644 --- a/src/test/func/malloc/malloc.cc +++ b/src/test/func/malloc/malloc.cc @@ -48,8 +48,11 @@ void test_realloc(void* p, size_t size, int err, bool null) { fprintf(stderr, "realloc(%p(%d), %d)\n", p, int(size), (int)size); errno = 0; - p = our_realloc(p, size); - check_result(size, 1, p, err, null); + auto new_p = our_realloc(p, size); + // Realloc failure case, deallocate original block + if (new_p == nullptr && size != 0) + our_free(p); + check_result(size, 1, new_p, err, null); } void test_posix_memalign(size_t size, size_t align, int err, bool null)