[FFmpeg-devel] [PATCH 01/11] avformat/webmdashenc: Fix segfault when no filename is given when live

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Fri Jul 24 04:16:23 EEST 2020


Andreas Rheinhardt:
> by checking a bit earlier.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
>  libavformat/webmdashenc.c | 8 +++++---
>  1 file 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",
> 

Will apply this patchset tomorrow unless there are objections.

- Andreas


More information about the ffmpeg-devel mailing list