staging: speakup: Use kstrtoul_from_user
authorPeter Huewe <peterhuewe@gmx.de>
Mon, 6 Jun 2011 19:32:32 +0000 (21:32 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 28 Jun 2011 21:35:41 +0000 (14:35 -0700)
This patch replaces the code for getting an unsigned long from a
userspace buffer by a simple call to kstroul_from_user.
This makes it easier to read and less error prone.

Kernel Version: staging of 20110606

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/speakup/speakup_soft.c

index a2c3dc4..42cdafe 100644 (file)
@@ -273,15 +273,8 @@ static ssize_t softsynth_write(struct file *fp, const char *buf, size_t count,
 {
        unsigned long supplied_index = 0;
        int converted;
-       char indbuf[5];
-       if (count >= sizeof(indbuf))
-               return -EINVAL;
 
-       if (copy_from_user(indbuf, buf, count))
-               return -EFAULT;
-       indbuf[count] = '\0';
-
-       converted = strict_strtoul(indbuf, 0, &supplied_index);
+       converted = kstrtoul_from_user(buf, count, 0, &supplied_index);
 
        if (converted < 0)
                return converted;