Skip to contentSkip to conversation

suspend: off by one in pm_suspend()

PATCH Applied Dan Carpenter 2 participants 2 messages Sep 20, 2011 – Sep 21, 2011

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 suspend: off by one in pm_suspend()

In enter_state() we use "state" as an offset for the pm_states[] array. The pm_states[] array only has PM_SUSPEND_MAX elements so this test is off by one.

kernel/power/suspend.c +1 -1
index 1d58583..4953dc0 100644
@@ -321,7 +321,7 @@ int enter_state(suspend_state_t state)
 int pm_suspend(suspend_state_t state)
 {
 	int ret;
-	if (state > PM_SUSPEND_ON && state <= PM_SUSPEND_MAX) {
+	if (state > PM_SUSPEND_ON && state < PM_SUSPEND_MAX) {
 		ret = enter_state(state);
 		if (ret) {
 			suspend_stats.fail++;
#1 lore raw
Quoted 5 lines · Dan Carpenter

In enter_state() we use "state" as an offset for the pm_states[] array. The pm_states[] array only has PM_SUSPEND_MAX elements so this test is off by one.

Applied to linux-pm/linux-next, will be pushed for 3.2.

Thanks,
Rafael

Quoted 15 lines
kernel/power/suspend.c +1 -1
index 1d58583..4953dc0 100644
@@ -321,7 +321,7 @@ int enter_state(suspend_state_t state)
 int pm_suspend(suspend_state_t state)
 {
 	int ret;
-	if (state > PM_SUSPEND_ON && state <= PM_SUSPEND_MAX) {
+	if (state > PM_SUSPEND_ON && state < PM_SUSPEND_MAX) {
 		ret = enter_state(state);
 		if (ret) {
 			suspend_stats.fail++;