summaryrefslogtreecommitdiffstats
path: root/fs/sysfs/bin.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-04-22 09:27:47 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-04-22 09:27:47 +0900
commit99ce567ba912109c78762246c964327f3f81f27d (patch)
tree685265d60792c11d386db6c005ca8b8e714ecc23 /fs/sysfs/bin.c
parent8fb2bae4b41eb64f6e233e9bd3f3a789fbb04a06 (diff)
parentccc5ff94c66e628d3c501b26ace5d4339667715d (diff)
downloadlinux-99ce567ba912109c78762246c964327f3f81f27d.tar.bz2
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'fs/sysfs/bin.c')
-rw-r--r--fs/sysfs/bin.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c
index 93e0c0281d45..9345806c8853 100644
--- a/fs/sysfs/bin.c
+++ b/fs/sysfs/bin.c
@@ -157,14 +157,9 @@ static ssize_t write(struct file *file, const char __user *userbuf,
count = size - offs;
}
- temp = kmalloc(count, GFP_KERNEL);
- if (!temp)
- return -ENOMEM;
-
- if (copy_from_user(temp, userbuf, count)) {
- count = -EFAULT;
- goto out_free;
- }
+ temp = memdup_user(userbuf, count);
+ if (IS_ERR(temp))
+ return PTR_ERR(temp);
mutex_lock(&bb->mutex);
@@ -176,8 +171,6 @@ static ssize_t write(struct file *file, const char __user *userbuf,
if (count > 0)
*off = offs + count;
-out_free:
- kfree(temp);
return count;
}