[media] siano: Fix array boundary at smscore_translate_msg()
authorMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 1 Apr 2013 14:46:52 +0000 (11:46 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 4 Apr 2013 17:35:40 +0000 (14:35 -0300)
As reported by Dan Carpenter:
FYI, there are new smatch warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next master
head:   da17d7bda957ae4697b6abc0793f74fb9b50b58f
commit: 4c3bdb5e2f5612ceb99ac17dbbe673b59a94d105 [media] siano: better debug send/receive messages

drivers/media/common/siano/smscoreapi.c:396 smscore_translate_msg() error: buffer overflow 'siano_msgs' 401 <= 401

While it is almost impossible for this error to happen in
practice, as it would require the siano's firmware to return
an special invalid answer to a message request, fixing it
is trivial. So, let's do it.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/common/siano/smscoreapi.c

index ebb9eceb1dcae09c59e66dbc6daffc5e02e7d14d..45ac9eea488271e13f910a176974a9a6f47e1b22 100644 (file)
@@ -389,7 +389,7 @@ char *smscore_translate_msg(enum msg_types msgtype)
        int i = msgtype - MSG_TYPE_BASE_VAL;
        char *msg;
 
-       if (i < 0 || i > ARRAY_SIZE(siano_msgs))
+       if (i < 0 || i >= ARRAY_SIZE(siano_msgs))
                return "Unknown msg type";
 
        msg = siano_msgs[i];