watchdog: jz4740_wdt - fix magic character checking

When writing to /dev/watchdog all characters should be checked
for the magic character 'V'.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
Wim Van Sebroeck 2011-01-16 19:05:39 +00:00
parent f865c35224
commit 742e4b6308
1 changed files with 11 additions and 4 deletions

View File

@ -130,11 +130,18 @@ static ssize_t jz4740_wdt_write(struct file *file, const char *data,
size_t len, loff_t *ppos)
{
if (len) {
if (data[len-1] == 'V')
set_bit(WDT_OK_TO_CLOSE, &jz4740_wdt.status);
else
clear_bit(WDT_OK_TO_CLOSE, &jz4740_wdt.status);
size_t i;
clear_bit(WDT_OK_TO_CLOSE, &jz4740_wdt.status);
for (i = 0; i != len; i++) {
char c;
if (get_user(c, data + i))
return -EFAULT;
if (c == 'V')
set_bit(WDT_OK_TO_CLOSE, &jz4740_wdt.status);
}
jz4740_wdt_service();
}