diff options
| author | dean gaudet <dean@arctic.org> | 2006-04-27 21:39:17 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-28 11:33:46 -0400 |
| commit | 47bb789973fed504e4711ec34e63b84e6cbfb4e8 (patch) | |
| tree | 2f617a73244a93d4b5b92236b6f809bf36912db5 /kernel | |
| parent | 37e53db8aa233c65142d63b496277bf5be9c0ade (diff) | |
[PATCH] off-by-1 in kernel/power/main.c
There's an off-by-1 in kernel/power/main.c:state_store() ... if your
kernel just happens to have some non-zero data at pm_states[PM_SUSPEND_MAX]
(i.e. one past the end of the array) then it'll let you write anything you
want to /sys/power/state and in response the box will enter S5.
Signed-off-by: dean gaudet <dean@arctic.org>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/power/main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/power/main.c b/kernel/power/main.c index ee371f50ccaa..a6d9ef46009e 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
| @@ -272,7 +272,7 @@ static ssize_t state_store(struct subsystem * subsys, const char * buf, size_t n | |||
| 272 | if (*s && !strncmp(buf, *s, len)) | 272 | if (*s && !strncmp(buf, *s, len)) |
| 273 | break; | 273 | break; |
| 274 | } | 274 | } |
| 275 | if (*s) | 275 | if (state < PM_SUSPEND_MAX && *s) |
| 276 | error = enter_state(state); | 276 | error = enter_state(state); |
| 277 | else | 277 | else |
| 278 | error = -EINVAL; | 278 | error = -EINVAL; |
