summaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_core.c
diff options
context:
space:
mode:
authorAndre Guedes2014-03-24 20:08:48 +0100
committerMarcel Holtmann2014-03-26 17:31:34 +0100
commit4408dd15d9cfcf78b819d2d4a5b43dc36056cab8 (patch)
tree6a2f1035ceec0615cb8688b120aa58812e229853 /net/bluetooth/hci_core.c
parentBluetooth: Refactor advertising report processing into its own function (diff)
downloadkernel-qcow2-linux-4408dd15d9cfcf78b819d2d4a5b43dc36056cab8.tar.gz
kernel-qcow2-linux-4408dd15d9cfcf78b819d2d4a5b43dc36056cab8.tar.xz
kernel-qcow2-linux-4408dd15d9cfcf78b819d2d4a5b43dc36056cab8.zip
Bluetooth: Use memdup_user in le_auto_conn_write()
This patch does a small code simplification replacing the tipical kmalloc-copy_from_user sequence by memdup_user() helper. Cc: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Andre Guedes <andre.guedes@openbossa.org> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/hci_core.c')
-rw-r--r--net/bluetooth/hci_core.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 1c6ffaa8902f..bfc6f810554e 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -955,14 +955,9 @@ static ssize_t le_auto_conn_write(struct file *file, const char __user *data,
if (count < 3)
return -EINVAL;
- buf = kzalloc(count, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- if (copy_from_user(buf, data, count)) {
- err = -EFAULT;
- goto done;
- }
+ buf = memdup_user(data, count);
+ if (IS_ERR(buf))
+ return PTR_ERR(buf);
if (memcmp(buf, "add", 3) == 0) {
n = sscanf(&buf[4], "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx %hhu %hhu",