From 7ec9b9beca13f617c1464444df3707ce2c619906 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Wed, 16 Jun 2010 18:27:55 +0000 Subject: Make av_parse_expr() fail if there are trailing chars at the end of the provided expression. Allow detection of mistyped expressions. Originally committed as revision 23629 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/eval.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavutil/eval.c b/libavutil/eval.c index 530e79a7be..065625c9a6 100644 --- a/libavutil/eval.c +++ b/libavutil/eval.c @@ -448,6 +448,7 @@ int av_parse_expr(AVExpr **expr, const char *s, AVExpr *e = NULL; char *w = av_malloc(strlen(s) + 1); char *wp = w; + const char *s0 = s; int ret = 0; if (!w) @@ -470,6 +471,11 @@ int av_parse_expr(AVExpr **expr, const char *s, if ((ret = parse_expr(&e, &p)) < 0) goto end; + if (*p.s) { + av_log(&p, AV_LOG_ERROR, "Invalid chars '%s' at the end of expression '%s'\n", p.s, s0); + ret = AVERROR(EINVAL); + goto end; + } if (!verify_expr(e)) { av_free_expr(e); ret = AVERROR(EINVAL); -- cgit v1.2.3