diff options
author | Wim Van Sebroeck <wim@iguana.be> | 2011-02-21 05:52:43 -0500 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2011-03-14 06:39:27 -0400 |
commit | bbd562d717a84c6464211e8bd5efa0d9e25edc6d (patch) | |
tree | 7dd79ba99653747dc9b9aa5b776c94859ec9a64c /drivers/watchdog | |
parent | c44ed965be7a84afaa07543c04eb97a5dfe93422 (diff) |
watchdog: cpwd: Fix buffer-overflow
cppcheck-1.47 reports:
[drivers/watchdog/cpwd.c:650]: (error) Buffer access out-of-bounds: p.devs
The source code is
for (i = 0; i < 4; i++) {
misc_deregister(&p->devs[i].misc);
where devs is defined as WD_NUMDEVS big and WD_NUMDEVS is equal to 3.
So the 4 should be a 3 or WD_NUMDEVS.
Reported-By: David Binderman
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r-- | drivers/watchdog/cpwd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/watchdog/cpwd.c b/drivers/watchdog/cpwd.c index eca855a55c0d..3de4ba0260a5 100644 --- a/drivers/watchdog/cpwd.c +++ b/drivers/watchdog/cpwd.c | |||
@@ -646,7 +646,7 @@ static int __devexit cpwd_remove(struct platform_device *op) | |||
646 | struct cpwd *p = dev_get_drvdata(&op->dev); | 646 | struct cpwd *p = dev_get_drvdata(&op->dev); |
647 | int i; | 647 | int i; |
648 | 648 | ||
649 | for (i = 0; i < 4; i++) { | 649 | for (i = 0; i < WD_NUMDEVS; i++) { |
650 | misc_deregister(&p->devs[i].misc); | 650 | misc_deregister(&p->devs[i].misc); |
651 | 651 | ||
652 | if (!p->enabled) { | 652 | if (!p->enabled) { |