From 61afe4d98ce62d9dfc6f0548e18730ba2f621cc2 Mon Sep 17 00:00:00 2001 From: "Dai, Jianhui J" Date: Tue, 19 Mar 2024 06:05:17 +0000 Subject: [PATCH] avcodec/cbs_vp8: Improve the bitstream position check The VP8 compressed header may not be byte-aligned due to boolean coding. Round up byte count for accurate data positioning. Signed-off-by: Jianhui Dai Signed-off-by: Ronald S. Bultje --- libavcodec/cbs_vp8.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/cbs_vp8.c b/libavcodec/cbs_vp8.c index afa2e4f980..1f80f34faf 100644 --- a/libavcodec/cbs_vp8.c +++ b/libavcodec/cbs_vp8.c @@ -339,7 +339,9 @@ static int cbs_vp8_read_unit(CodedBitstreamContext *ctx, return err; pos = get_bits_count(&gbc); - pos /= 8; + // Position may not be byte-aligned after compressed header; Round up byte + // count for accurate data positioning. + pos = (pos + 7) / 8; av_assert0(pos <= unit->data_size); frame->data_ref = av_buffer_ref(unit->data_ref);