]> git.sesse.net Git - ffmpeg/commitdiff
avutil/opt: try to fix the case where src==dst in av_opt_copy()
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 17 Jul 2014 03:56:40 +0000 (05:56 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 17 Jul 2014 04:21:42 +0000 (06:21 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavutil/opt.c

index 694295dc3529fa2eac1c04ed6519315ca9ad58a6..505e0103db4c109f359b8ea6d23b96404fe05fba 100644 (file)
@@ -1559,7 +1559,9 @@ int av_opt_copy(void *dst, void *src)
         uint8_t **field_src8 = (uint8_t**)field_src;
 
         if (o->type == AV_OPT_TYPE_STRING) {
-            set_string(dst, o, *field_src8, field_dst8);
+            if (*field_dst8 != *field_src8)
+                av_freep(field_dst8);
+            *field_dst8 = av_strdup(*field_src8);
             if (*field_src8 && !*field_dst8)
                 ret = AVERROR(ENOMEM);
         } else if (o->type == AV_OPT_TYPE_BINARY) {