From: Hans Verkuil Date: Thu, 23 Aug 2018 08:10:05 +0000 (-0400) Subject: media: vicodec: fix out-of-range values when decoding X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=be5a1509af8dd8a78fea24a35fe4a82d4cd0ae70;p=openwrt%2Fstaging%2Fblogic.git media: vicodec: fix out-of-range values when decoding While decoding you need to make sure you do not get values < 0 or > 255. Note that since this code will also be used in userspace utilities the clamp macro isn't used since that is kernel-only. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/vicodec/codec-fwht.c b/drivers/media/platform/vicodec/codec-fwht.c index f91f90f7e5fc..47939160560e 100644 --- a/drivers/media/platform/vicodec/codec-fwht.c +++ b/drivers/media/platform/vicodec/codec-fwht.c @@ -625,8 +625,14 @@ static void fill_decoder_block(u8 *dst, const s16 *input, int stride) int i, j; for (i = 0; i < 8; i++) { - for (j = 0; j < 8; j++) - *dst++ = *input++; + for (j = 0; j < 8; j++, input++, dst++) { + if (*input < 0) + *dst = 0; + else if (*input > 255) + *dst = 255; + else + *dst = *input; + } dst += stride - 8; } }