[FFmpeg-devel] [PATCH] lavc/utvideodec: prevent possible signed overflow
Ronald S. Bultje
rsbultje at gmail.com
Tue Feb 23 13:12:46 CET 2016
Hi,
On Mon, Feb 22, 2016 at 11:34 PM, Ganesh Ajjanagadde <gajjanag at gmail.com>
wrote:
> Doing slice_end - slice_start is unsafe and can lead to undefined behavior
> until slice_end has been properly sanitized.
>
> Signed-off-by: Ganesh Ajjanagadde <gajjanag at gmail.com>
> ---
> libavcodec/utvideodec.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/utvideodec.c b/libavcodec/utvideodec.c
> index 760d9e5..c31416b 100644
> --- a/libavcodec/utvideodec.c
> +++ b/libavcodec/utvideodec.c
> @@ -356,12 +356,12 @@ static int decode_frame(AVCodecContext *avctx, void
> *data, int *got_frame,
> slice_end = 0;
> for (j = 0; j < c->slices; j++) {
> slice_end = bytestream2_get_le32u(&gb);
> - slice_size = slice_end - slice_start;
> - if (slice_end < 0 || slice_size < 0 ||
> + if (slice_end < 0 || slice_end < slice_start ||
> bytestream2_get_bytes_left(&gb) < slice_end) {
> av_log(avctx, AV_LOG_ERROR, "Incorrect slice size\n");
> return AVERROR_INVALIDDATA;
> }
> + slice_size = slice_end - slice_start;
> slice_start = slice_end;
> max_slice_size = FFMAX(max_slice_size, slice_size);
> }
> --
> 2.7.1
Lgtm, thanks.
Ronald
More information about the ffmpeg-devel
mailing list