mem: add av_max_alloc() to limit the maximum amount that may be allocated in one...
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 25 Dec 2011 17:43:58 +0000 (18:43 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 25 Dec 2011 17:55:43 +0000 (18:55 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavutil/avutil.h
libavutil/mem.c
libavutil/mem.h

index 204286a..4dc6eb0 100644 (file)
  */
 
 #define LIBAVUTIL_VERSION_MAJOR 51
-#define LIBAVUTIL_VERSION_MINOR 32
+#define LIBAVUTIL_VERSION_MINOR 33
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
index 4acc43b..f965339 100644 (file)
@@ -65,7 +65,11 @@ void  free(void *ptr);
    memory allocator. You do not need to suppress this file because the
    linker will do it automatically. */
 
-#define MAX_MALLOC_SIZE INT_MAX
+static size_t max_alloc_size= INT_MAX;
+
+void av_max_alloc(size_t max){
+    max_alloc_size = max;
+}
 
 void *av_malloc(size_t size)
 {
@@ -75,7 +79,7 @@ void *av_malloc(size_t size)
 #endif
 
     /* let's disallow possible ambiguous cases */
-    if (size > (MAX_MALLOC_SIZE-32))
+    if (size > (max_alloc_size-32))
         return NULL;
 
 #if CONFIG_MEMALIGN_HACK
@@ -130,7 +134,7 @@ void *av_realloc(void *ptr, size_t size)
 #endif
 
     /* let's disallow possible ambiguous cases */
-    if (size > (MAX_MALLOC_SIZE-16))
+    if (size > (max_alloc_size-32))
         return NULL;
 
 #if CONFIG_MEMALIGN_HACK
index f148c63..c6c907e 100644 (file)
@@ -177,6 +177,11 @@ static inline int av_size_mult(size_t a, size_t b, size_t *r)
 }
 
 /**
+ * Set the maximum size that may me allocated in one block.
+ */
+void av_max_alloc(size_t max);
+
+/**
  * @}
  */