Commit 83ee820a authored by Stefano Sabatini's avatar Stefano Sabatini

lavfi/sendcmd: improve error reporting and robustness in case of missing commands

In particular, fix crash with -vf sendcmd, when no arguments are provided.
parent e8374d72
...@@ -318,6 +318,9 @@ static int parse_intervals(Interval **intervals, int *nb_intervals, ...@@ -318,6 +318,9 @@ static int parse_intervals(Interval **intervals, int *nb_intervals,
*intervals = NULL; *intervals = NULL;
*nb_intervals = 0; *nb_intervals = 0;
if (!buf)
return 0;
while (1) { while (1) {
Interval interval; Interval interval;
...@@ -373,9 +376,9 @@ static av_cold int init(AVFilterContext *ctx) ...@@ -373,9 +376,9 @@ static av_cold int init(AVFilterContext *ctx)
SendCmdContext *sendcmd = ctx->priv; SendCmdContext *sendcmd = ctx->priv;
int ret, i, j; 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, 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); return AVERROR(EINVAL);
} }
...@@ -404,7 +407,7 @@ static av_cold int init(AVFilterContext *ctx) ...@@ -404,7 +407,7 @@ static av_cold int init(AVFilterContext *ctx)
return ret; return ret;
if (sendcmd->nb_intervals == 0) { 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); return AVERROR(EINVAL);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment