summaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorWim Van Sebroeck <wim@iguana.be>2011-02-21 11:52:43 +0100
committerWim Van Sebroeck <wim@iguana.be>2011-03-14 11:39:27 +0100
commitbbd562d717a84c6464211e8bd5efa0d9e25edc6d (patch)
tree7dd79ba99653747dc9b9aa5b776c94859ec9a64c /drivers/watchdog
parentcompat breakage in preadv() and pwritev() (diff)
downloadlinux-bbd562d717a84c6464211e8bd5efa0d9e25edc6d.tar.xz
linux-bbd562d717a84c6464211e8bd5efa0d9e25edc6d.zip
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.c2
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)
struct cpwd *p = dev_get_drvdata(&op->dev);
int i;
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < WD_NUMDEVS; i++) {
misc_deregister(&p->devs[i].misc);
if (!p->enabled) {