tty/vt/keyboard: use memdup_user().
Use memdup_user to duplicate a memory region from user-space to kernel-space, instead of open coding using kmalloc & copy_from_user. Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a7cfaf165e
commit
9b6519009d
|
@ -1745,16 +1745,10 @@ int vt_do_diacrit(unsigned int cmd, void __user *udp, int perm)
|
|||
return -EINVAL;
|
||||
|
||||
if (ct) {
|
||||
buf = kmalloc(ct * sizeof(struct kbdiacruc),
|
||||
GFP_KERNEL);
|
||||
if (buf == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
if (copy_from_user(buf, a->kbdiacruc,
|
||||
ct * sizeof(struct kbdiacruc))) {
|
||||
kfree(buf);
|
||||
return -EFAULT;
|
||||
}
|
||||
buf = memdup_user(a->kbdiacruc,
|
||||
ct * sizeof(struct kbdiacruc));
|
||||
if (IS_ERR(buf))
|
||||
return PTR_ERR(buf);
|
||||
}
|
||||
spin_lock_irqsave(&kbd_event_lock, flags);
|
||||
if (ct)
|
||||
|
|
Loading…
Reference in New Issue