mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
* 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
This commit is contained in:
parent
3a6fc8faf3
commit
a949360163
@ -50,11 +50,13 @@ void *av_malloc(unsigned int size)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* let's disallow possible ambiguous cases */
|
/* let's disallow possible ambiguous cases */
|
||||||
if(size > INT_MAX)
|
if(size > (INT_MAX-16) )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
#ifdef MEMALIGN_HACK
|
#ifdef MEMALIGN_HACK
|
||||||
ptr = malloc(size+16+1);
|
ptr = malloc(size+16);
|
||||||
|
if(!ptr)
|
||||||
|
return ptr;
|
||||||
diff= ((-(long)ptr - 1)&15) + 1;
|
diff= ((-(long)ptr - 1)&15) + 1;
|
||||||
ptr += diff;
|
ptr += diff;
|
||||||
((char*)ptr)[-1]= diff;
|
((char*)ptr)[-1]= diff;
|
||||||
@ -104,7 +106,7 @@ void *av_realloc(void *ptr, unsigned int size)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* let's disallow possible ambiguous cases */
|
/* let's disallow possible ambiguous cases */
|
||||||
if(size > INT_MAX)
|
if(size > (INT_MAX-16) )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
#ifdef MEMALIGN_HACK
|
#ifdef MEMALIGN_HACK
|
||||||
|
Loading…
x
Reference in New Issue
Block a user