diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2006-08-13 21:09:00 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2006-08-13 21:09:00 +0000 |
commit | 732692d94cf3048799c848799ee601ffc2f768b0 (patch) | |
tree | cb74737cd380f364c0bc3bbe6db9478fc33e25e3 /libavutil/mem.c | |
parent | 0ccd1bb5376a9fd40156d737dc773e8fe798cf31 (diff) | |
download | ffmpeg-732692d94cf3048799c848799ee601ffc2f768b0.tar.gz |
trying to fix av_realloc()
Originally committed as revision 5996 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavutil/mem.c')
-rw-r--r-- | libavutil/mem.c | 8 |
1 files changed, 5 insertions, 3 deletions
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; } |