On Mon, 9 Apr 2012, Ronald S. Bultje wrote:
Hi,
On Mon, Apr 9, 2012 at 12:10 PM, Martin Storsjö <mar...@martin.st> wrote:
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.
---
libavutil/mem.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libavutil/mem.c b/libavutil/mem.c
index b6230cf..22ec9a8 100644
--- a/libavutil/mem.c
+++ b/libavutil/mem.c
@@ -68,8 +68,13 @@ void *av_malloc(size_t size)
long diff;
#endif
+#ifdef DEBUG
+ if (!size)
+ abort();
+#endif
Isn't this the same as assert(size)?
Hmm, yes, I guess it is, updated locally.
Otherwise OK.
Ok, I'll push it later unless there's some objections.
// Martin
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel