fbmem: return -EFAULT on copy_to_user() failure
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 18 Jun 2013 07:05:29 +0000 (10:05 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 26 Jun 2013 13:03:36 +0000 (16:03 +0300)
copy_to_user() returns the number of bytes remaining to be copied.
put_user() returns -EFAULT on error.

This function ORs a bunch of stuff together and returns jumbled non-zero
values on error.  It should return -EFAULT.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/fbmem.c

index 098bfc6..9217be3 100644 (file)
@@ -1305,7 +1305,9 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
        err |= copy_to_user(fix32->reserved, fix->reserved,
                            sizeof(fix->reserved));
 
-       return err;
+       if (err)
+               return -EFAULT;
+       return 0;
 }
 
 static int fb_get_fscreeninfo(struct fb_info *info, unsigned int cmd,