[PATCH] USB: fix sign-extension bug in the hub driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch (as1646) fixes a long-standing bug in the USB hub driver.
Upon conversion from char to unsigned long, the bytes in the status
buffer are subject to unwanted sign extension.  The bytes should be
declared as u8 rather than char, to prevent this.

This effects of this bug are minimal.  The hub driver may end up doing
a little unnecessary extra work because it thinks events have occurred
on some ports when they really haven't.

Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

---

Greg:

Although it is technically a bug, the effects caused by this error are 
so minor that I don't know whether it's worth queuing this for the 
stable kernels.  I'll leave that decision up to you.

Alan Stern



 drivers/usb/core/hub.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: usb-3.8/drivers/usb/core/hub.h
===================================================================
--- usb-3.8.orig/drivers/usb/core/hub.h
+++ usb-3.8/drivers/usb/core/hub.h
@@ -31,7 +31,7 @@ struct usb_hub {
 	struct urb		*urb;		/* for interrupt polling pipe */
 
 	/* buffer for urb ... with extra space in case of babble */
-	char			(*buffer)[8];
+	u8			(*buffer)[8];
 	union {
 		struct usb_hub_status	hub;
 		struct usb_port_status	port;

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux