public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] idmouse cleanup and overflow fix
@ 2005-10-29 10:56 Al Viro
  0 siblings, 0 replies; only message in thread
From: Al Viro @ 2005-10-29 10:56 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Greg Kroah-Hartman, linux-kernel

	switched to simple_read_from_buffer(), killed broken use of min().
Incidentally, that use of min() had been fixed once, only to be reintroduced
in
    [PATCH] USB: upgrade of the idmouse driver
[snip]
-       if (count > IMGSIZE - *ppos)
-               count = IMGSIZE - *ppos;
+       count = min ((loff_t)count, IMGSIZE - (*ppos));

Note the lovely use of cast to shut the warning about misuse of min() up...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
----
diff -urN RC14-base/drivers/usb/misc/idmouse.c current/drivers/usb/misc/idmouse.c
--- RC14-base/drivers/usb/misc/idmouse.c	2005-10-29 02:47:52.000000000 -0400
+++ current/drivers/usb/misc/idmouse.c	2005-10-29 06:07:49.000000000 -0400
@@ -319,20 +319,8 @@
 		return -ENODEV;
 	}
 
-	if (*ppos >= IMGSIZE) {
-		up (&dev->sem);
-		return 0;
-	}
-
-	count = min ((loff_t)count, IMGSIZE - (*ppos));
-
-	if (copy_to_user (buffer, dev->bulk_in_buffer + *ppos, count)) {
-		result = -EFAULT;
-	} else {
-		result = count;
-		*ppos += count;
-	}
-
+	result = simple_read_from_buffer(buffer, count, ppos,
+					dev->bulk_in_buffer, IMGSIZE);
 	/* unlock the device */
 	up(&dev->sem);
 	return result;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-10-29 10:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-29 10:56 [PATCH] idmouse cleanup and overflow fix Al Viro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox