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 <[email protected]>
---
 drivers/media/platform/vicodec/codec-fwht.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

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;
        }
 }
-- 
2.18.0


Reply via email to