mtd: docg3: off by one in doc_register_sysfs()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 19 Oct 2015 10:20:05 +0000 (13:20 +0300)
committerBrian Norris <computersforpeace@gmail.com>
Mon, 26 Oct 2015 18:45:30 +0000 (11:45 -0700)
commit2382960793c2480277ae98a891ea5aa566e06ff1
tree6ef6e74ad19631e7ba00bd1f2651446343e3967b
parent89c1702da717164fcff633594e130f54dd563499
mtd: docg3: off by one in doc_register_sysfs()

Smatch found a bug in the error handling:

drivers/mtd/devices/docg3.c:1634 doc_register_sysfs()
error: buffer overflow 'doc_sys_attrs' 4 <= 4

The problem is that if the very last device_create_file() fails, then we
are beyond the end of the array.  Actually, any time i == 3 then there
is a problem.  We can fix this an simplify the code at the same time by
moving the !ret conditions out of the for loops and using a goto
instead.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/devices/docg3.c