mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
avformat/webmdashenc: Check codec types
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@gmail.com> (cherry picked from commit cbea58b2b35c6409e062c929f0b2ab763b8661eb) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
f9f3fd9387
commit
8bc9904513
@ -517,6 +517,14 @@ static int webm_dash_manifest_write_header(AVFormatContext *s)
|
|||||||
double start = 0.0;
|
double start = 0.0;
|
||||||
int ret;
|
int ret;
|
||||||
WebMDashMuxContext *w = s->priv_data;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
ret = parse_adaptation_sets(s);
|
ret = parse_adaptation_sets(s);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
goto fail;
|
goto fail;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user