Setting `hue` by calling tpg_s_hue() directly is risky, since it does not
perform range check. Clamp `hue` to the valid range in tpg_s_hue().

Suggested-by: Hans Verkuil <hverk...@xs4all.nl>
Signed-off-by: Peilin Ye <yepeilin...@gmail.com>
---
 include/media/tpg/v4l2-tpg.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/media/tpg/v4l2-tpg.h b/include/media/tpg/v4l2-tpg.h
index eb191e85d363..fd15e5db9f5b 100644
--- a/include/media/tpg/v4l2-tpg.h
+++ b/include/media/tpg/v4l2-tpg.h
@@ -324,6 +324,7 @@ static inline void tpg_s_saturation(struct tpg_data *tpg,
 static inline void tpg_s_hue(struct tpg_data *tpg,
                                        s16 hue)
 {
+       hue = clamp_t(s16, hue, -128, 128);
        if (tpg->hue == hue)
                return;
        tpg->hue = hue;
-- 
2.25.1

Reply via email to