summaryrefslogtreecommitdiff
path: root/drivers/video/console/newport_con.c
diff options
context:
space:
mode:
authorRoel Kluin <roel.kluin@gmail.com>2009-09-23 03:47:38 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-23 18:39:56 +0400
commitf7a595e98c3140f1271957aa742a6b84407620d4 (patch)
treee0566fee9bcebfc681d635fd430ccac87604e611 /drivers/video/console/newport_con.c
parentdb8df7b0622cc6ddad993da2e4dfaf3b5d98ee30 (diff)
downloadlinux-f7a595e98c3140f1271957aa742a6b84407620d4.tar.xz
drivers/video/console/newport_con.c: fix read outside array bounds
It reads linetable[] before checking bounds of index, and ARRAY_SIZE is required because linetable[] are unsigned shorts. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Cc: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/console/newport_con.c')
-rw-r--r--drivers/video/console/newport_con.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/video/console/newport_con.c b/drivers/video/console/newport_con.c
index d31b203bf654..3772433c49d1 100644
--- a/drivers/video/console/newport_con.c
+++ b/drivers/video/console/newport_con.c
@@ -216,7 +216,7 @@ static void newport_get_screensize(void)
}
newport_xsize = newport_ysize = 0;
- for (i = 0; linetable[i + 1] && (i < sizeof(linetable)); i += 2) {
+ for (i = 0; i < ARRAY_SIZE(linetable) - 1 && linetable[i + 1]; i += 2) {
cols = 0;
newport_vc2_set(npregs, VC2_IREG_RADDR, linetable[i]);
npregs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_RAM |