usbip: only dump valid port status
authorMárton Németh <nm127@freemail.hu>
Mon, 13 Jun 2011 21:47:39 +0000 (23:47 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 6 Jul 2011 02:59:18 +0000 (19:59 -0700)
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>
drivers/staging/usbip/vhci_hcd.c

index 359b4647b6017328d607e6d8c3c4a072fd941661..658c674b878536f1dcd21d8625d3ea0218417a68 100644 (file)
@@ -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");