]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
Staging: comedi: Return -EFAULT if copy_to_user() fails
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 2 Dec 2020 06:43:49 +0000 (09:43 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 28 Dec 2020 14:14:53 +0000 (15:14 +0100)
Return -EFAULT on error instead of the number of bytes remaining to be
copied.

Fixes: bac42fb21259 ("comedi: get rid of compat_alloc_user_space() mess in COMEDI_CMD{,TEST} compat")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/X8c3pfwFy2jpy4BP@mwanda
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/comedi_fops.c

index d99231c737fbfb52b03265b6e8937d11743907b3..80d74cce2a010502e2539fa49b75b9bc5caf6ab7 100644 (file)
@@ -2987,7 +2987,9 @@ static int put_compat_cmd(struct comedi32_cmd_struct __user *cmd32,
        v32.chanlist_len = cmd->chanlist_len;
        v32.data = ptr_to_compat(cmd->data);
        v32.data_len = cmd->data_len;
-       return copy_to_user(cmd32, &v32, sizeof(v32));
+       if (copy_to_user(cmd32, &v32, sizeof(v32)))
+               return -EFAULT;
+       return 0;
 }
 
 /* Handle 32-bit COMEDI_CMD ioctl. */