summaryrefslogtreecommitdiff
path: root/libavformat/webm_chunk.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2019-05-02 20:45:14 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2019-05-25 02:05:20 +0200
commit3b5b977c9f96e2c3803317ad75253801bc571791 (patch)
treefc54fb5e96ba9021d02e0a75b72400ae6ee315ab /libavformat/webm_chunk.c
parent4fd74a2b104f3e67f251b67099f5855c386a55bd (diff)
downloadffmpeg-3b5b977c9f96e2c3803317ad75253801bc571791.tar.gz
avformat/webm_chunk: Check header filename length
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavformat/webm_chunk.c')
-rw-r--r--libavformat/webm_chunk.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavformat/webm_chunk.c b/libavformat/webm_chunk.c
index 2c99753b5b..1124dab144 100644
--- a/libavformat/webm_chunk.c
+++ b/libavformat/webm_chunk.c
@@ -92,11 +92,16 @@ static int get_chunk_filename(AVFormatContext *s, int is_header, char *filename)
return AVERROR(EINVAL);
}
if (is_header) {
+ int len;
if (!wc->header_filename) {
av_log(oc, AV_LOG_ERROR, "No header filename provided\n");
return AVERROR(EINVAL);
}
- av_strlcpy(filename, wc->header_filename, MAX_FILENAME_SIZE);
+ len = av_strlcpy(filename, wc->header_filename, MAX_FILENAME_SIZE);
+ if (len >= MAX_FILENAME_SIZE) {
+ av_log(oc, AV_LOG_ERROR, "Header filename too long\n");
+ return AVERROR(EINVAL);
+ }
} else {
if (av_get_frame_filename(filename, MAX_FILENAME_SIZE,
s->url, wc->chunk_index - 1) < 0) {