[PATCH] idmouse cleanup and overflow fix
From: Al Viro
Date: Sat Oct 29 2005 - 05:57:23 EST
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@xxxxxxxxxxxxxxxxxx>
----
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;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/