History

swsusp: Fix userland interface

Fix oops caused by 'cat /dev/snapshot', reported by Arkadiusz Miskiewicz, and make it impossible to thaw tasks with the help of the swsusp userland interface while there is a snapshot image ready to save.

Rafael J. Wysocki committed 19 years ago

Commit 2f41ddd1 parent b1d93de1 file · +3 −1Browse files

Showing the changes to kernel (1 of 1 file). Show all

Unified · Split

kernel/power/user.c+3−1
@@ -99,6 +99,8 @@ static ssize_t snapshot_read(struct file *filp, char __user *buf, · 98 unmodified lines
9999 ssize_t res;
100100
101101 data = filp->private_data;
102+ if (!data->ready)
103+ return -ENODATA;
102104 res = snapshot_read_next(&data->handle, count);
103105 if (res > 0) {
104106 if (copy_to_user(buf, data_of(data->handle), res))
@@ -245,7 +247,7 @@ static int snapshot_ioctl(struct inode *inode, struct file *filp, · 140 unmodified lines
245247 break;
246248
247249 case SNAPSHOT_UNFREEZE:
248− if (!data->frozen)
250+ if (!data->frozen || data->ready)
249251 break;
250252 mutex_lock(&pm_mutex);
251253 thaw_processes();