Skip to content
Snippets Groups Projects
Commit b2788fe9 authored by Anton Khirnov's avatar Anton Khirnov
Browse files

svq3: fix the slice size check

Currently it incorrectly compares bits with bytes.

Also, move the check right before where it's relevant, so that the
correct number of remaining bits is used.

CC: libav-stable@libav.org
parent cd7a2e15
No related branches found
No related tags found
No related merge requests found
......@@ -1031,17 +1031,16 @@ static int svq3_decode_slice_header(AVCodecContext *avctx)
slice_bits = slice_length * 8;
slice_bytes = slice_length + length - 1;
if (slice_bytes > bitstream_bits_left(&s->bc)) {
av_log(avctx, AV_LOG_ERROR, "slice after bitstream end\n");
return -1;
}
bitstream_skip(&s->bc, 8);
av_fast_malloc(&s->slice_buf, &s->slice_size, slice_bytes + AV_INPUT_BUFFER_PADDING_SIZE);
if (!s->slice_buf)
return AVERROR(ENOMEM);
if (slice_bytes * 8 > bitstream_bits_left(&s->bc)) {
av_log(avctx, AV_LOG_ERROR, "slice after bitstream end\n");
return AVERROR_INVALIDDATA;
}
memcpy(s->slice_buf, s->bc.buffer + bitstream_tell(&s->bc) / 8, slice_bytes);
if (s->watermark_key) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment