summaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>2016-04-23 06:21:09 -0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2016-04-25 09:45:50 -0300
commit363d79f1d5bd09158cc28db543ca18549a5d7e52 (patch)
tree24446e06f7dd775a6940d94d4a2b39820f122ba2 /drivers/media
parent1a2b2c708c5f7187c4c33d002bed6130381a6698 (diff)
downloadlinux-363d79f1d5bd09158cc28db543ca18549a5d7e52.tar.gz
linux-363d79f1d5bd09158cc28db543ca18549a5d7e52.tar.bz2
linux-363d79f1d5bd09158cc28db543ca18549a5d7e52.zip
[media] tw686x: Don't go past array
Depending on the compiler version, currently it produces the following warnings: tw686x-video.c: In function 'tw686x_video_init': tw686x-video.c:65:543: warning: array subscript is above array bounds [-Warray-bounds] This is actually bogus with the current code, as it currently hardcodes the framerate to 30 frames/sec, however a potential use after the array size could happen when the driver adds support for setting the framerate. So, fix it. Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/pci/tw686x/tw686x-video.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/media/pci/tw686x/tw686x-video.c b/drivers/media/pci/tw686x/tw686x-video.c
index 60d38f19134b..d2a0147e6492 100644
--- a/drivers/media/pci/tw686x/tw686x-video.c
+++ b/drivers/media/pci/tw686x/tw686x-video.c
@@ -61,8 +61,17 @@ static unsigned int tw686x_fields_map(v4l2_std_id std, unsigned int fps)
8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 0, 0
};
- unsigned int i =
- (std & V4L2_STD_625_50) ? std_625_50[fps] : std_525_60[fps];
+ unsigned int i;
+
+ if (std & V4L2_STD_525_60) {
+ if (fps > ARRAY_SIZE(std_525_60))
+ fps = 30;
+ i = std_525_60[fps];
+ } else {
+ if (fps > ARRAY_SIZE(std_625_50))
+ fps = 25;
+ i = std_625_50[fps];
+ }
return map[i];
}