diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-03-14 21:24:54 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-04-22 12:27:24 +0200 |
commit | f000df4ce2a70bbbdfbd9efb7650f970ed65bd19 (patch) | |
tree | c0cea4d58ffd5f956763d972074016eb80861939 | |
parent | 88f2d31d4e929f5592ed03d5f167ce3addccbe5f (diff) | |
download | ffmpeg-f000df4ce2a70bbbdfbd9efb7650f970ed65bd19.tar.gz |
avformat/mov: Check for string truncation in mov_open_dref()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8003816e1619e77d8de051883264aa090e0d78cc)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/mov.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c index e23c77a493..97e02b4a53 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2286,7 +2286,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; @@ -2316,6 +2316,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; } |