[FFmpeg-cvslog] lavu/opt: make sure av_opt_set_bin() handles NULL/0.

Nicolas George git at videolan.org
Mon Apr 1 15:19:30 CEST 2013


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Thu Mar 28 16:45:12 2013 +0100| [983d04dd40a40d2d099d9c382e84da49fd2fe031] | committer: Nicolas George

lavu/opt: make sure av_opt_set_bin() handles NULL/0.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=983d04dd40a40d2d099d9c382e84da49fd2fe031
---

 libavutil/opt.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/libavutil/opt.c b/libavutil/opt.c
index fb3b724..ab73913 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -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;
 }



More information about the ffmpeg-cvslog mailing list