diff options
author | Benoit Taine <benoit.taine@lip6.fr> | 2014-05-26 17:21:25 +0200 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2014-05-27 00:41:05 +0200 |
commit | 662d4ceae8d45bc8634d9f4c9a9e05ef42041038 (patch) | |
tree | 3ba55ebb0c34ce87b5692d68148f0d48dd6c7f8d /drivers/hid/uhid.c | |
parent | 37c492c8f6a99870551fe2964b2dfce5d9e87375 (diff) | |
download | linux-662d4ceae8d45bc8634d9f4c9a9e05ef42041038.tar.bz2 |
HID: uhid: Use kmemdup instead of kmalloc + memcpy
This issue was reported by coccicheck using the semantic patch
at scripts/coccinelle/api/memdup.cocci
Signed-off-by: Benoit Taine <benoit.taine@lip6.fr>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/uhid.c')
-rw-r--r-- | drivers/hid/uhid.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c index 0d078c32db4f..0cb92e347258 100644 --- a/drivers/hid/uhid.c +++ b/drivers/hid/uhid.c @@ -441,12 +441,11 @@ static int uhid_dev_create2(struct uhid_device *uhid, if (uhid->rd_size <= 0 || uhid->rd_size > HID_MAX_DESCRIPTOR_SIZE) return -EINVAL; - uhid->rd_data = kmalloc(uhid->rd_size, GFP_KERNEL); + uhid->rd_data = kmemdup(ev->u.create2.rd_data, uhid->rd_size, + GFP_KERNEL); if (!uhid->rd_data) return -ENOMEM; - memcpy(uhid->rd_data, ev->u.create2.rd_data, uhid->rd_size); - hid = hid_allocate_device(); if (IS_ERR(hid)) { ret = PTR_ERR(hid); |