[SCM] libav/experimental: * Allocating 16 bytes more for the MEMALIGN_HACK is enough. There's no need for 1 more extra byte.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:48:29 UTC 2013


The following commit has been merged in the experimental branch:
commit a9493601638b048c44751956d2360f215918800c
Author: Herve W <H.O.W.aka.V+ffmpeg at gmail.com>
Date:   Fri Jun 30 08:00:01 2006 +0000

    * 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

diff --git a/libavcodec/mem.c b/libavcodec/mem.c
index b7a2ba6..118463b 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

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list