[FFmpeg-devel] [PATCH 1/2] avformat/webmdashenc: Check codec types

Carl Eugen Hoyos ceffmpeg at gmail.com
Sun Apr 5 20:58:34 EEST 2020


Am Mo., 30. März 2020 um 09:30 Uhr schrieb Andreas Rheinhardt
<andreas.rheinhardt at gmail.com>:
>
> The WebM DASH Manifest muxer only supports VP8, VP9, Vorbis and Opus,
> but there was no check for this. The codec type is used to get a pointer
> to a string containing the codec name or NULL if it is not one of those
> four codecs. Said pointer has then been used without further checks as
> string for the %s conversion specifier in an avio_printf()) call which
> is undefined behaviour.
>
> This commit adds a check for the supported codec types.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
>  libavformat/webmdashenc.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c
> index d05b265330..182a361eae 100644
> --- a/libavformat/webmdashenc.c
> +++ b/libavformat/webmdashenc.c
> @@ -516,6 +516,14 @@ static int webm_dash_manifest_write_header(AVFormatContext *s)
>      double start = 0.0;
>      int ret;
>      WebMDashMuxContext *w = s->priv_data;
> +
> +    for (unsigned i = 0; i < s->nb_streams; i++) {
> +        enum AVCodecID codec_id = s->streams[i]->codecpar->codec_id;
> +        if ((codec_id != AV_CODEC_ID_VP8) && (codec_id != AV_CODEC_ID_VP9) &&
> +            (codec_id != AV_CODEC_ID_VORBIS) && (codec_id != AV_CODEC_ID_OPUS))
> +            return AVERROR(EINVAL);

Too man parenthesis imo...

Carl Eugen


More information about the ffmpeg-devel mailing list