[FFmpeg-devel] [PATCH 3/6] Make av_parse_expr() fail if there are trailing chars at the end of the provided expression that have not been parsed.

Stefano Sabatini stefano.sabatini-lala
Sun Jun 13 00:38:43 CEST 2010


---
 libavutil/eval.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/libavutil/eval.c b/libavutil/eval.c
index 5506822..def3def 100644
--- a/libavutil/eval.c
+++ b/libavutil/eval.c
@@ -451,6 +451,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,9 +471,14 @@ int av_parse_expr(AVExpr **expr, const char *s,
     p.func2_names = func2_names;
     p.log_offset = log_offset;
     p.log_ctx    = log_ctx;
-
     if ((ret = parse_expr(&e, &p)) < 0)
         goto end;
+    if (*p.s) {
+        av_log(log_ctx, AV_LOG_ERROR+log_offset,
+               " 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);
-- 
1.7.1




More information about the ffmpeg-devel mailing list