Skip to contentSkip to conversation

fbmem: return -EFAULT on copy_to_user() failure

PATCH In review Dan Carpenter 2 participants 2 messages Jun 18, 2013 – Jun 26, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fbmem: return -EFAULT on copy_to_user() failure

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.

drivers/video/fbmem.c +3 -1
index 098bfc6..9217be3 100644
@@ -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,
#1 lore raw
Quoted 13 lines · Dan Carpenter

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.

drivers/video/fbmem.c +0 -0
index 098bfc6..9217be3 100644

drivers/video/fbmem.c static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix, · line 1313

Quoted 10 lines
drivers/video/fbmem.c +3 -1
@@ -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,

I've added this to fbdev-3.11 branch.

Tomi