[FFmpeg-cvslog] avcodec/cfhd: check if band encoding is valid
Paul B Mahol
git at videolan.org
Sun Aug 9 19:48:53 EEST 2020
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sun Aug 9 11:00:07 2020 +0200| [8c7ea0c3449a3540302c58bffdbcb428ea32eb1d] | committer: Paul B Mahol
avcodec/cfhd: check if band encoding is valid
Also simplify lossless check as value of 5 for band encoding
always specify lossless mode.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8c7ea0c3449a3540302c58bffdbcb428ea32eb1d
---
libavcodec/cfhd.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c
index 088ab42355..759c85004c 100644
--- a/libavcodec/cfhd.c
+++ b/libavcodec/cfhd.c
@@ -523,6 +523,11 @@ static int cfhd_decode(AVCodecContext *avctx, void *data, int *got_frame,
s->prescale_shift[2] = (data >> 6) & 0x7;
av_log(avctx, AV_LOG_DEBUG, "Prescale shift (VC-5): %x\n", data);
} else if (tag == BandEncoding) {
+ if (!data || data > 5) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid band encoding\n");
+ ret = AVERROR(EINVAL);
+ break;
+ }
s->band_encoding = data;
av_log(avctx, AV_LOG_DEBUG, "Encode Method for Subband %d : %x\n", s->subband_num_actual, data);
} else if (tag == LowpassWidth) {
@@ -814,8 +819,7 @@ static int cfhd_decode(AVCodecContext *avctx, void *data, int *got_frame,
{
OPEN_READER(re, &s->gb);
- const int lossless = (s->sample_type == 2 || s->sample_type == 3 || s->frame_type) &&
- s->subband_num_actual == 7 && s->band_encoding == 5;
+ const int lossless = s->band_encoding == 5;
if (s->codebook == 0 && s->transform_type == 2 && s->subband_num_actual == 7)
s->codebook = 1;
More information about the ffmpeg-cvslog
mailing list