media: vicodec: fix out-of-range values when decoding
authorHans Verkuil <hverkuil@xs4all.nl>
Thu, 23 Aug 2018 08:10:05 +0000 (04:10 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 31 Aug 2018 12:30:46 +0000 (08:30 -0400)
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 <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vicodec/codec-fwht.c

index f91f90f..4793916 100644 (file)
@@ -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;
        }
 }