[FFmpeg-cvslog] avfiltergraph: check for sws opts being non-NULL before using them.
Anton Khirnov
git at videolan.org
Sun May 12 12:55:43 CEST 2013
ffmpeg | branch: release/1.1 | Anton Khirnov <anton at khirnov.net> | Sun Mar 17 16:14:58 2013 +0100| [34ecaf6e888886badaea6470aa0e9e76595fb8fd] | committer: Reinhard Tartler
avfiltergraph: check for sws opts being non-NULL before using them.
Avoid snprintfing a NULL pointer.
CC: libav-stable at libav.org
(cherry picked from commit 6e3c13a559e9ff300b5ca60e1d503e594d7f055c)
Signed-off-by: Reinhard Tartler <siretart at tauware.de>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=34ecaf6e888886badaea6470aa0e9e76595fb8fd
---
libavfilter/avfiltergraph.c | 7 ++++++-
libavfilter/graphparser.c | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index f5c9984..d27b1b2 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -24,6 +24,7 @@
#include <string.h>
#include "libavutil/avassert.h"
+#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/log.h"
@@ -220,7 +221,11 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx)
snprintf(inst_name, sizeof(inst_name), "auto-inserted scaler %d",
scaler_count++);
- snprintf(scale_args, sizeof(scale_args), "0:0:%s", graph->scale_sws_opts);
+ av_strlcpy(scale_args, "0:0", sizeof(scale_args));
+ if (graph->scale_sws_opts) {
+ av_strlcat(scale_args, ":", sizeof(scale_args));
+ av_strlcat(scale_args, graph->scale_sws_opts, sizeof(scale_args));
+ }
if ((ret = avfilter_graph_create_filter(&convert, filter,
inst_name, scale_args, NULL,
graph)) < 0)
diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c
index 04339c8..7ce60c1 100644
--- a/libavfilter/graphparser.c
+++ b/libavfilter/graphparser.c
@@ -123,7 +123,8 @@ static int create_filter(AVFilterContext **filt_ctx, AVFilterGraph *ctx, int ind
return ret;
}
- if (!strcmp(filt_name, "scale") && args && !strstr(args, "flags")) {
+ if (!strcmp(filt_name, "scale") && args && !strstr(args, "flags") &&
+ ctx->scale_sws_opts) {
snprintf(tmp_args, sizeof(tmp_args), "%s:%s",
args, ctx->scale_sws_opts);
args = tmp_args;
More information about the ffmpeg-cvslog
mailing list