# HG changeset patch # User kostya # Date 1228239560 0 # Node ID d5949e5d36f3c2ad801f58649667e44abd714f8a # Parent 91a340f25c8cc6f0d4a09fb323ff61ca04f9f32c Check RV30/40 slice offsets to be inside buffer. This fixes issue 738 diff -r 91a340f25c8c -r d5949e5d36f3 rv34.c --- a/rv34.c Tue Dec 02 17:35:38 2008 +0000 +++ b/rv34.c Tue Dec 02 17:39:20 2008 +0000 @@ -1389,6 +1389,11 @@ else size= get_slice_offset(avctx, slices_hdr, i+1) - offset; + if(offset > buf_size){ + av_log(avctx, AV_LOG_ERROR, "Slice offset is greater than frame size\n"); + break; + } + r->si.end = s->mb_width * s->mb_height; if(i+1 < slice_count){ init_get_bits(&s->gb, buf+get_slice_offset(avctx, slices_hdr, i+1), (buf_size-get_slice_offset(avctx, slices_hdr, i+1))*8);