[FFmpeg-cvslog] avfilter/graphparser: remove 256 char limit from create_filter()

Michael Niedermayer git at videolan.org
Sun Aug 4 01:26:15 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Aug  4 00:56:55 2013 +0200| [61af627d56c785650ac3d235f6356ee3bc5676ee] | committer: Michael Niedermayer

avfilter/graphparser: remove 256 char limit from create_filter()

Fixes Ticket2803

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavfilter/graphparser.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c
index 92fd53b..e14c4ec 100644
--- a/libavfilter/graphparser.c
+++ b/libavfilter/graphparser.c
@@ -96,7 +96,7 @@ static int create_filter(AVFilterContext **filt_ctx, AVFilterGraph *ctx, int ind
 {
     AVFilter *filt;
     char inst_name[30];
-    char tmp_args[256];
+    char *tmp_args = NULL;
     int ret;
 
     snprintf(inst_name, sizeof(inst_name), "Parsed_%s_%d", filt_name, index);
@@ -118,8 +118,10 @@ static int create_filter(AVFilterContext **filt_ctx, AVFilterGraph *ctx, int ind
 
     if (!strcmp(filt_name, "scale") && args && !strstr(args, "flags") &&
         ctx->scale_sws_opts) {
-        snprintf(tmp_args, sizeof(tmp_args), "%s:%s",
+        tmp_args = av_asprintf("%s:%s",
                  args, ctx->scale_sws_opts);
+        if (!tmp_args)
+            return AVERROR(ENOMEM);
         args = tmp_args;
     }
 
@@ -130,10 +132,10 @@ static int create_filter(AVFilterContext **filt_ctx, AVFilterGraph *ctx, int ind
         if (args)
             av_log(log_ctx, AV_LOG_ERROR, " with args '%s'", args);
         av_log(log_ctx, AV_LOG_ERROR, "\n");
-        return ret;
     }
 
-    return 0;
+    av_free(tmp_args);
+    return ret;
 }
 
 /**



More information about the ffmpeg-cvslog mailing list