PM / hibernate: Fix memory corruption in resumedelay_setup()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 14 May 2014 16:08:46 +0000 (19:08 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 16 May 2014 21:15:05 +0000 (23:15 +0200)
In the original code "resume_delay" is an int so on 64 bits, the call to
kstrtoul() will cause memory corruption.  We may as well fix a style
issue here as well and make "resume_delay" unsigned int, since that's
what we pass to ssleep().

Fixes: 317cf7e5e85e (PM / hibernate: convert simple_strtoul to kstrtoul)
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
kernel/power/hibernate.c

index 2377ff72994c58b5bf397a6ffb95d38524d81626..df88d55dc4363965caa32ab1ac5c479c40e858e0 100644 (file)
@@ -35,7 +35,7 @@
 static int nocompress;
 static int noresume;
 static int resume_wait;
-static int resume_delay;
+static unsigned int resume_delay;
 static char resume_file[256] = CONFIG_PM_STD_PARTITION;
 dev_t swsusp_resume_device;
 sector_t swsusp_resume_block;
@@ -1115,7 +1115,7 @@ static int __init resumewait_setup(char *str)
 
 static int __init resumedelay_setup(char *str)
 {
-       int rc = kstrtoul(str, 0, (unsigned long *)&resume_delay);
+       int rc = kstrtouint(str, 0, &resume_delay);
 
        if (rc)
                return rc;