aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/f_sendcmd.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2015-03-16 10:41:19 +0100
committerStefano Sabatini <stefasab@gmail.com>2015-03-16 10:49:25 +0100
commit83ee820a1678937ab8343f2766e9662ef9fd420f (patch)
tree31deefd74819e5968f97b10b3648901391ce0c3c /libavfilter/f_sendcmd.c
parente8374d72027c0b3faa85c1e2cc69bfecb8c020c8 (diff)
downloadffmpeg-83ee820a1678937ab8343f2766e9662ef9fd420f.tar.gz
lavfi/sendcmd: improve error reporting and robustness in case of missing commands
In particular, fix crash with -vf sendcmd, when no arguments are provided.
Diffstat (limited to 'libavfilter/f_sendcmd.c')
-rw-r--r--libavfilter/f_sendcmd.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
index e1e649c508..7cb958b789 100644
--- a/libavfilter/f_sendcmd.c
+++ b/libavfilter/f_sendcmd.c
@@ -318,6 +318,9 @@ static int parse_intervals(Interval **intervals, int *nb_intervals,
*intervals = NULL;
*nb_intervals = 0;
+ if (!buf)
+ return 0;
+
while (1) {
Interval interval;
@@ -373,9 +376,9 @@ static av_cold int init(AVFilterContext *ctx)
SendCmdContext *sendcmd = ctx->priv;
int ret, i, j;
- if (sendcmd->commands_filename && sendcmd->commands_str) {
+ if ((!!sendcmd->commands_filename + !!sendcmd->commands_str) != 1) {
av_log(ctx, AV_LOG_ERROR,
- "Only one of the filename or commands options must be specified\n");
+ "One and only one of the filename or commands options must be specified\n");
return AVERROR(EINVAL);
}
@@ -404,7 +407,7 @@ static av_cold int init(AVFilterContext *ctx)
return ret;
if (sendcmd->nb_intervals == 0) {
- av_log(ctx, AV_LOG_ERROR, "No commands\n");
+ av_log(ctx, AV_LOG_ERROR, "No commands were specified\n");
return AVERROR(EINVAL);
}