copy_from_user() returns a positive value in case of an error, to fix
this the check is turned around, also a better return value is chosen.

Reported-by: Dan Carpenter <dan.carpen...@oracle.com>
Suggested-by: Dan Carpenter <dan.carpen...@oracle.com>
Signed-off-by: Christian Lütke-Stetzkamp <christ...@lkamp.de>
Reviewed-by: NeilBrown <n...@brown.name>
---
 drivers/staging/mt7621-mmc/dbg.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/dbg.c b/drivers/staging/mt7621-mmc/dbg.c
index ec95f6d49997..9a1809d74ea3 100644
--- a/drivers/staging/mt7621-mmc/dbg.c
+++ b/drivers/staging/mt7621-mmc/dbg.c
@@ -265,9 +265,8 @@ static ssize_t msdc_debug_proc_write(struct file *file,
        if (count > 255)
                count = 255;
 
-       ret = copy_from_user(cmd_buf, buf, count);
-       if (ret < 0)
-               return -1;
+       if (copy_from_user(cmd_buf, buf, count))
+               return -EFAULT;
 
        cmd_buf[count] = '\0';
        printk("msdc Write %s\n", cmd_buf);
-- 
2.16.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to