From 65f6fba9434fa9ab4b5d2b91c3f930c1e3cb4bef Mon Sep 17 00:00:00 2001 From: Jerome Martinez Date: Sat, 1 Apr 2023 19:04:25 +0200 Subject: [PATCH] avformat/mxfenc: replace ffv1 version related assert by error message --- libavformat/mxfenc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 9eba208ffb..0a1ae5353c 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -2489,8 +2489,8 @@ static int mxf_parse_ffv1_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt) ff_init_range_decoder(&c, st->codecpar->extradata, st->codecpar->extradata_size); ff_build_rac_states(&c, 0.05 * (1LL << 32), 256 - 8); v = get_ffv1_unsigned_symbol(&c, state); - av_assert0(v >= 2); - if (v > 4) { + if (v < 2) { + av_log(s, AV_LOG_ERROR, "Invalid version in ffv1 global header\n"); return 0; } sc->micro_version = get_ffv1_unsigned_symbol(&c, state); @@ -2500,7 +2500,10 @@ static int mxf_parse_ffv1_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt) ff_build_rac_states(&c, 0.05 * (1LL << 32), 256 - 8); get_rac(&c, &keystate); // keyframe v = get_ffv1_unsigned_symbol(&c, state); - av_assert0(v < 2); + if (v >= 2) { + av_log(s, AV_LOG_ERROR, "invalid version %d in ffv1 ver01 header\n", v); + return 0; + } } sc->codec_ul = &mxf_ffv1_codec_uls[v]; @@ -3129,7 +3132,6 @@ static int mxf_write_packet(AVFormatContext *s, AVPacket *pkt) } } else if (st->codecpar->codec_id == AV_CODEC_ID_FFV1) { if (!mxf_parse_ffv1_frame(s, st, pkt)) { - av_log(s, AV_LOG_ERROR, "could not get ffv1 version\n"); return -1; } } -- 2.13.3.windows.1