Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: media: atomisp: fix range checking on clk_num

The range checking on clk_num is incorrect; fix these so that invalid
clk_num values are detected correctly.

Detected by static analysis with by PVS-Studio

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Colin Ian King and committed by
Greg Kroah-Hartman
6eeabd8b 8ed78a15

+4 -4
+4 -4
drivers/staging/media/atomisp/platform/clock/vlv2_plat_clock.c
··· 67 67 { 68 68 void __iomem *addr; 69 69 70 - if (clk_num < 0 && clk_num > MAX_CLK_COUNT) { 70 + if (clk_num < 0 || clk_num >= MAX_CLK_COUNT) { 71 71 pr_err("Clock number out of range (%d)\n", clk_num); 72 72 return -EINVAL; 73 73 } ··· 103 103 { 104 104 u32 ret; 105 105 106 - if (clk_num < 0 && clk_num > MAX_CLK_COUNT) { 106 + if (clk_num < 0 || clk_num >= MAX_CLK_COUNT) { 107 107 pr_err("Clock number out of range (%d)\n", clk_num); 108 108 return -EINVAL; 109 109 } ··· 133 133 { 134 134 void __iomem *addr; 135 135 136 - if (clk_num < 0 && clk_num > MAX_CLK_COUNT) { 136 + if (clk_num < 0 || clk_num >= MAX_CLK_COUNT) { 137 137 pr_err("Clock number out of range (%d)\n", clk_num); 138 138 return -EINVAL; 139 139 } ··· 169 169 { 170 170 int ret; 171 171 172 - if (clk_num < 0 && clk_num > MAX_CLK_COUNT) { 172 + if (clk_num < 0 || clk_num >= MAX_CLK_COUNT) { 173 173 pr_err("Clock number out of range (%d)\n", clk_num); 174 174 return -EINVAL; 175 175 }