summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/fan.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-18 10:14:56 +0200
committerIngo Molnar <mingo@elte.hu>2008-07-18 10:14:56 +0200
commit48ae74443403ab25876959e84785f61bf421ccef (patch)
treedd6d8277f2f0e691edf49a38ff9a804f9a1532d0 /drivers/acpi/fan.c
parent1b82c9666a6f637ccb3a86d0fbe23d0427076815 (diff)
parent5b664cb235e97afbf34db9c4d77f08ebd725335e (diff)
downloadkernel-crypto-48ae74443403ab25876959e84785f61bf421ccef.tar.gz
kernel-crypto-48ae74443403ab25876959e84785f61bf421ccef.tar.xz
kernel-crypto-48ae74443403ab25876959e84785f61bf421ccef.zip
Merge branch 'linus' into x86/step
Diffstat (limited to 'drivers/acpi/fan.c')
-rw-r--r--drivers/acpi/fan.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
index 6cf10cbc1ee..55c17afbe66 100644
--- a/drivers/acpi/fan.c
+++ b/drivers/acpi/fan.c
@@ -148,7 +148,7 @@ acpi_fan_write_state(struct file *file, const char __user * buffer,
int result = 0;
struct seq_file *m = file->private_data;
struct acpi_device *device = m->private;
- char state_string[12] = { '\0' };
+ char state_string[3] = { '\0' };
if (count > sizeof(state_string) - 1)
return -EINVAL;
@@ -157,6 +157,12 @@ acpi_fan_write_state(struct file *file, const char __user * buffer,
return -EFAULT;
state_string[count] = '\0';
+ if ((state_string[0] < '0') || (state_string[0] > '3'))
+ return -EINVAL;
+ if (state_string[1] == '\n')
+ state_string[1] = '\0';
+ if (state_string[1] != '\0')
+ return -EINVAL;
result = acpi_bus_set_power(device->handle,
simple_strtoul(state_string, NULL, 0));