Re: [PATCH 4/4] reftable/basics: return NULL on zero-sized allocations
On Sat, Dec 21, 2024, at 12:50, Patrick Steinhardt wrote:
Show 22 quoted lines
> In the preceding commits we have fixed a couple of issues when
> allocating zero-sized objects. These issues were masked by
> implementation-defined behaviour. Quoting malloc(3p):
>
> If size is 0, either:
>
> * A null pointer shall be returned and errno may be set to an
> implementation-defined value, or
>
> * A pointer to the allocated space shall be returned. The
> application shall ensure that the pointer is not used to access an
> object.
>
> So it is perfectly valid that implementations of this function may or
> may not return a NULL pointer in such a case.
>
> Adapt both `reftable_malloc()` and `reftable_realloc()` so that they
> return NULL pointers on zero-sized allocations. This should remove any
> implementation-defined behaviour in our allocators and thus allows us to
> detect such platform-specific issues more easily going forward.
>
> Signed-off-by: Patrick Steinhardt <ps@pks.im>