Fix wrong pointer being checked for NULL

It's the region pointer that can be NULL here, and p was checked at the
beginning of the function. Also fix the test accordingly.
This commit is contained in:
Thibaut Sautereau 2021-02-10 09:25:55 +01:00
parent 4a5b3a33b9
commit e33365564b
No known key found for this signature in database
GPG key ID: AFB95DA3B1D60262
2 changed files with 5 additions and 3 deletions

View file

@ -1633,7 +1633,7 @@ EXPORT size_t h_malloc_usable_size(H_MALLOC_USABLE_SIZE_CONST void *p) {
struct region_allocator *ra = ro.region_allocator;
mutex_lock(&ra->lock);
struct region_metadata *region = regions_find(p);
if (p == NULL) {
if (region == NULL) {
fatal_error("invalid malloc_usable_size");
}
size_t size = region->size;

View file

@ -145,9 +145,11 @@ class TestSimpleMemoryCorruption(unittest.TestCase):
"fatal allocator error: invalid free\n")
def test_uninitialized_malloc_usable_size(self):
_stdout, _stderr, returncode = self.run_test(
_stdout, stderr, returncode = self.run_test(
"uninitialized_malloc_usable_size")
self.assertEqual(returncode, -11)
self.assertEqual(returncode, -6)
self.assertEqual(stderr.decode("utf-8"),
"fatal allocator error: invalid malloc_usable_size\n")
def test_uninitialized_realloc(self):
_stdout, stderr, returncode = self.run_test("uninitialized_realloc")