From a9493601638b048c44751956d2360f215918800c Mon Sep 17 00:00:00 2001 From: Herve W Date: Fri, 30 Jun 2006 08:00:01 +0000 Subject: [PATCH] * Allocating 16 bytes more for the MEMALIGN_HACK is enough. There's no need for 1 more extra byte. * Checking whether the to be allocated size is larger than INT_MAX, doesn't assure that size+16 bytes for the MEMALIGN_HACK isn't larger than INT_MAX. * malloc might return NULL. Checking for it before using that pointer seems like a good idea. Patch by Herve W. H PPP O PPP W PPP aka PPP V+ffmpeg AH gmail PPP com Original thread: Date: Jun 29, 2006 1:21 PM Subject: [Ffmpeg-devel] [PATCH] minor improvements to libavcodec/mem.c Originally committed as revision 5559 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mem.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/mem.c b/libavcodec/mem.c index b7a2ba6921..118463ba0e 100644 --- a/libavcodec/mem.c +++ b/libavcodec/mem.c @@ -50,11 +50,13 @@ void *av_malloc(unsigned int size) #endif /* let's disallow possible ambiguous cases */ - if(size > INT_MAX) + if(size > (INT_MAX-16) ) return NULL; #ifdef MEMALIGN_HACK - ptr = malloc(size+16+1); + ptr = malloc(size+16); + if(!ptr) + return ptr; diff= ((-(long)ptr - 1)&15) + 1; ptr += diff; ((char*)ptr)[-1]= diff; @@ -104,7 +106,7 @@ void *av_realloc(void *ptr, unsigned int size) #endif /* let's disallow possible ambiguous cases */ - if(size > INT_MAX) + if(size > (INT_MAX-16) ) return NULL; #ifdef MEMALIGN_HACK