From 732692d94cf3048799c848799ee601ffc2f768b0 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 13 Aug 2006 21:09:00 +0000 Subject: trying to fix av_realloc() Originally committed as revision 5996 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/mem.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libavutil/mem.c') diff --git a/libavutil/mem.c b/libavutil/mem.c index 61d886dc5d..cdfefd6055 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -50,7 +50,7 @@ void *av_malloc(unsigned int size) #endif /* let's disallow possible ambiguous cases */ - if(size > (INT_MAX-16) ) + if(size > (INT_MAX-16) || !size) return NULL; #ifdef MEMALIGN_HACK @@ -109,14 +109,16 @@ void *av_realloc(void *ptr, unsigned int size) #ifndef MEMALIGN_HACK ptr= realloc(ptr, size); - if(((int)ptr&15) || !ptr) +assert(((int)((void*)0)&15) == 0); //for the null pointer pedants + if(!((int)ptr&15)) return ptr; #endif ptr2= av_malloc(size); if(ptr && ptr2) memcpy(ptr2, ptr, size); - av_free(ptr); + if(ptr2 || !size) + av_free(ptr); return ptr2; } -- cgit v1.2.3