aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-07-14 22:49:15 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-22 21:57:08 +0100
commit9d5c7e067510f57378e8ba18321991457b0c275a (patch)
treee4451ae6e9b682fef7e669fa2f16703ceb1935d6
parente114a337be61e3c37f74c15c196bcb9ba6b6300d (diff)
downloadffmpeg-9d5c7e067510f57378e8ba18321991457b0c275a.tar.gz
avformat/webmdashenc: Fix segfault when no filename is given when live
by checking a bit earlier. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> (cherry picked from commit c1fab8637e4bd9e0f09ae31247b709a22dafa440)
-rw-r--r--libavformat/webmdashenc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c
index eb286cab99..3eefd6df8b 100644
--- a/libavformat/webmdashenc.c
+++ b/libavformat/webmdashenc.c
@@ -171,8 +171,7 @@ static int write_representation(AVFormatContext *s, AVStream *stream, char *id,
AVDictionaryEntry *filename = av_dict_get(stream->metadata, FILENAME, NULL, 0);
AVDictionaryEntry *bandwidth = av_dict_get(stream->metadata, BANDWIDTH, NULL, 0);
const char *bandwidth_str;
- if ((w->is_live && (!filename)) ||
- (!w->is_live && (!irange || !cues_start || !cues_end || !filename || !bandwidth))) {
+ if (!w->is_live && (!irange || !cues_start || !cues_end || !filename || !bandwidth)) {
return AVERROR_INVALIDDATA;
}
avio_printf(s->pb, "<Representation id=\"%s\"", id);
@@ -380,7 +379,10 @@ static int write_adaptation_set(AVFormatContext *s, int as_index)
av_dict_get(s->streams[as->streams[0]]->metadata, FILENAME, NULL, 0);
char *initialization_pattern = NULL;
char *media_pattern = NULL;
- int ret = parse_filename(filename->value, NULL, &initialization_pattern,
+ int ret;
+ if (!filename)
+ return AVERROR(EINVAL);
+ ret = parse_filename(filename->value, NULL, &initialization_pattern,
&media_pattern);
if (ret) return ret;
avio_printf(s->pb, "<ContentComponent id=\"1\" type=\"%s\"/>\n",