Commit 14f063d2 authored by Martin Storsjö's avatar Martin Storsjö

mem: Consistently return NULL for av_malloc(0)

Plain POSIX malloc(0) is allowed to return either NULL or a
non-NULL pointer. The calling code should be ready to handle
a NULL return as a correct return (instead of a failure) if the size
to allocate was 0 - this makes sure the condition is handled
in a consistent way across platforms.

This also avoids calling posix_memalign(&ptr, 32, 0) on OS X,
which returns an invalid pointer (a non-NULL pointer that causes
crashes when passed to av_free).

Abort in debug mode, to help track down issues related to
incorrect handling of this case.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent e36b25d1
......@@ -68,8 +68,10 @@ void *av_malloc(size_t size)
long diff;
#endif
assert(size);
/* let's disallow possible ambiguous cases */
if(size > (INT_MAX-32) )
if (size > (INT_MAX-32) || !size)
return NULL;
#if CONFIG_MEMALIGN_HACK
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment