avformat/mov: Check for string truncation in mov_open_dref()
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 14 Mar 2015 20:24:54 +0000 (21:24 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 21 Mar 2015 00:52:53 +0000 (01:52 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8003816e1619e77d8de051883264aa090e0d78cc)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mov.c

index 39f30e4..0160079 100644 (file)
@@ -2460,7 +2460,7 @@ static int mov_open_dref(AVIOContext **pb, const char *src, MOVDref *ref,
     /* try relative path, we do not try the absolute because it can leak information about our
        system to an attacker */
     if (ref->nlvl_to > 0 && ref->nlvl_from > 0) {
-        char filename[1024];
+        char filename[1025];
         const char *src_path;
         int i, l;
 
@@ -2490,6 +2490,8 @@ static int mov_open_dref(AVIOContext **pb, const char *src, MOVDref *ref,
 
             av_strlcat(filename, ref->path + l + 1, sizeof(filename));
 
+            if (strlen(filename) + 1 == sizeof(filename))
+                return AVERROR(ENOENT);
             if (!avio_open2(pb, filename, AVIO_FLAG_READ, int_cb, NULL))
                 return 0;
         }