mirror of
https://github.com/facebook/zstd.git
synced 2025-07-29 11:21:22 +03:00
fuzz: Fix FUZZ_malloc_rand() to return non-NULL for zero-size allocations
The FUZZ_malloc_rand() function was incorrectly always returning NULL for zero-size allocations. The random offset generated by FUZZ_dataProducer_int32Range() was not being added to the pointer variable, causing the function to always return (void *)0.
This commit is contained in:
@ -31,12 +31,11 @@ void* FUZZ_malloc_rand(size_t size, FUZZ_dataProducer_t *producer)
|
|||||||
return mem;
|
return mem;
|
||||||
} else {
|
} else {
|
||||||
uintptr_t ptr = 0;
|
uintptr_t ptr = 0;
|
||||||
/* Add +- 1M 50% of the time */
|
/* Return junk pointer 50% of the time */
|
||||||
if (FUZZ_dataProducer_uint32Range(producer, 0, 1))
|
if (FUZZ_dataProducer_uint32Range(producer, 0, 1))
|
||||||
FUZZ_dataProducer_int32Range(producer, -1000000, 1000000);
|
ptr += FUZZ_dataProducer_int32Range(producer, -1000000, 1000000);
|
||||||
return (void*)ptr;
|
return (void*)ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int FUZZ_memcmp(void const* lhs, void const* rhs, size_t size)
|
int FUZZ_memcmp(void const* lhs, void const* rhs, size_t size)
|
||||||
|
@ -66,6 +66,7 @@ void* FUZZ_malloc(size_t size);
|
|||||||
/**
|
/**
|
||||||
* malloc except returns random pointer for zero sized data and FUZZ_ASSERT
|
* malloc except returns random pointer for zero sized data and FUZZ_ASSERT
|
||||||
* that malloc doesn't fail.
|
* that malloc doesn't fail.
|
||||||
|
* WARNING: Only free the returned pointer if size > 0!
|
||||||
*/
|
*/
|
||||||
void* FUZZ_malloc_rand(size_t size, FUZZ_dataProducer_t *producer);
|
void* FUZZ_malloc_rand(size_t size, FUZZ_dataProducer_t *producer);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user