Browse Source

usbip: only dump valid port status

The wIndex parameter of vhci_hub_control() is always zero when the
request type is GetHubDescriptor, see drivers/usb/core/hub.c::get_hub_descriptor()
and Universal Serial Bus Specification revision 2.0 (April 27, 2000) Section
11.24.2.5 "Get Hub Descriptor". This means the variable rhport will not contain
any useful index. Only use valid rhport values.

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Márton Németh 14 years ago
parent
commit
bfb4ce2070
1 changed files with 5 additions and 2 deletions
  1. 5 2
      drivers/staging/usbip/vhci_hcd.c

+ 5 - 2
drivers/staging/usbip/vhci_hcd.c

@@ -464,8 +464,11 @@ static int vhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
 
 	if (usbip_dbg_flag_vhci_rh) {
 		pr_debug("port %d\n", rhport);
-		dump_port_status(prev_port_status[rhport]);
-		dump_port_status(dum->port_status[rhport]);
+		/* Only dump valid port status */
+		if (rhport >= 0) {
+			dump_port_status(prev_port_status[rhport]);
+			dump_port_status(dum->port_status[rhport]);
+		}
 	}
 	usbip_dbg_vhci_rh(" bye\n");