]> git.sesse.net Git - ffmpeg/commitdiff
lavu/opt: make sure av_opt_set_bin() handles NULL/0.
authorNicolas George <nicolas.george@normalesup.org>
Thu, 28 Mar 2013 15:45:12 +0000 (16:45 +0100)
committerNicolas George <nicolas.george@normalesup.org>
Mon, 1 Apr 2013 08:38:38 +0000 (10:38 +0200)
libavutil/opt.c

index fb3b724bd65cc599b1dac41c9b26e9b0bc4dfd37..ab73913a390fcd985e4ee023dd6b2630568a1e2e 100644 (file)
@@ -420,8 +420,8 @@ int av_opt_set_bin(void *obj, const char *name, const uint8_t *val, int len, int
     if (o->type != AV_OPT_TYPE_BINARY)
         return AVERROR(EINVAL);
 
-    ptr = av_malloc(len);
-    if (!ptr)
+    ptr = len ? av_malloc(len) : NULL;
+    if (len && !ptr)
         return AVERROR(ENOMEM);
 
     dst = (uint8_t **)(((uint8_t *)target_obj) + o->offset);
@@ -430,7 +430,8 @@ int av_opt_set_bin(void *obj, const char *name, const uint8_t *val, int len, int
     av_free(*dst);
     *dst = ptr;
     *lendst = len;
-    memcpy(ptr, val, len);
+    if (len)
+        memcpy(ptr, val, len);
 
     return 0;
 }