mem: Handle av_reallocp(..., 0) properly
authorMartin Storsjö <martin@martin.st>
Fri, 20 Sep 2013 11:02:41 +0000 (14:02 +0300)
committerMartin Storsjö <martin@martin.st>
Fri, 20 Sep 2013 18:23:08 +0000 (21:23 +0300)
Previously this did a double free (and returned an error).

Reported-by: Justin Ruggles
Signed-off-by: Martin Storsjö <martin@martin.st>
libavutil/mem.c

index 172180e..b84020c 100644 (file)
@@ -141,6 +141,10 @@ int av_reallocp(void *ptr, size_t size)
     void **ptrptr = ptr;
     void *ret;
 
+    if (!size) {
+        av_freep(ptr);
+        return 0;
+    }
     ret = av_realloc(*ptrptr, size);
 
     if (!ret) {