diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2014-12-17 15:19:43 +0100 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2014-12-18 23:27:14 +0100 |
commit | 63be97ec403023fb664798432acedaf6e6922527 (patch) | |
tree | faba23abd1d152d41b6d7c54617eea6d05a19d90 | |
parent | 9e06327ecb8f73c7904d10af7ad339c57cdaa788 (diff) | |
download | ffmpeg-63be97ec403023fb664798432acedaf6e6922527.tar.gz |
lavfi: always check av_expr_parse_and_eval() return value
CC: libav-stable@libav.org
Bug-Id: CID 703624
-rw-r--r-- | libavfilter/vf_pad.c | 14 | ||||
-rw-r--r-- | libavfilter/vf_scale.c | 7 |
2 files changed, 12 insertions, 9 deletions
diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index 634af4c941..bacb5051e1 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -158,9 +158,10 @@ static int config_input(AVFilterLink *inlink) var_values[VAR_VSUB] = 1<<s->vsub; /* evaluate width and height */ - av_expr_parse_and_eval(&res, (expr = s->w_expr), - var_names, var_values, - NULL, NULL, NULL, NULL, NULL, 0, ctx); + if ((ret = av_expr_parse_and_eval(&res, (expr = s->w_expr), + var_names, var_values, + NULL, NULL, NULL, NULL, NULL, 0, ctx)) < 0) + goto eval_fail; s->w = var_values[VAR_OUT_W] = var_values[VAR_OW] = res; if ((ret = av_expr_parse_and_eval(&res, (expr = s->h_expr), var_names, var_values, @@ -175,9 +176,10 @@ static int config_input(AVFilterLink *inlink) s->w = var_values[VAR_OUT_W] = var_values[VAR_OW] = res; /* evaluate x and y */ - av_expr_parse_and_eval(&res, (expr = s->x_expr), - var_names, var_values, - NULL, NULL, NULL, NULL, NULL, 0, ctx); + if ((ret = av_expr_parse_and_eval(&res, (expr = s->x_expr), + var_names, var_values, + NULL, NULL, NULL, NULL, NULL, 0, ctx)) < 0) + goto eval_fail; s->x = var_values[VAR_X] = res; if ((ret = av_expr_parse_and_eval(&res, (expr = s->y_expr), var_names, var_values, diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 73ea9d23e0..2b9e7e839b 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -177,9 +177,10 @@ static int config_props(AVFilterLink *outlink) var_values[VAR_VSUB] = 1 << desc->log2_chroma_h; /* evaluate width and height */ - av_expr_parse_and_eval(&res, (expr = scale->w_expr), - var_names, var_values, - NULL, NULL, NULL, NULL, NULL, 0, ctx); + if ((ret = av_expr_parse_and_eval(&res, (expr = scale->w_expr), + var_names, var_values, + NULL, NULL, NULL, NULL, NULL, 0, ctx)) < 0) + goto fail; scale->w = var_values[VAR_OUT_W] = var_values[VAR_OW] = res; if ((ret = av_expr_parse_and_eval(&res, (expr = scale->h_expr), var_names, var_values, |