Re: [PATCH v3 3/6] usb: usbip tool: Check the return of get_nports()

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

 



On Fri, Apr 07, 2017 at 03:41:37PM +0200, Krzysztof Opasiak wrote:
> 
> 
> On 04/06/2017 12:03 AM, Yuyang Du wrote:
> >If we get nonpositive number of ports, there is no sense to
> >continue, then fail gracefully.
> >
> >In addition, the commit 0775a9cbc694e8c72 ("usbip: vhci extension:
> >modifications to vhci driver") introduced configurable numbers of
> >controllers and ports, but we have a static port number maximum,
> >MAXNPORT. If exceeded, the idev array will be overflown. We fix
> >it by validating the nports to make sure the port number max is
> >not exceeded.
> >
> >Signed-off-by: Yuyang Du <yuyang.du@xxxxxxxxx>
> >---
> > tools/usb/usbip/libsrc/vhci_driver.c | 10 +++++++++-
> > 1 file changed, 9 insertions(+), 1 deletion(-)
> >
> >diff --git a/tools/usb/usbip/libsrc/vhci_driver.c b/tools/usb/usbip/libsrc/vhci_driver.c
> >index f659c14..151580a 100644
> >--- a/tools/usb/usbip/libsrc/vhci_driver.c
> >+++ b/tools/usb/usbip/libsrc/vhci_driver.c
> >@@ -220,9 +220,17 @@ int usbip_vhci_driver_open(void)
> > 	}
> >
> > 	vhci_driver->nports = get_nports();
> >-
> > 	dbg("available ports: %d", vhci_driver->nports);
> >
> >+	if (vhci_driver->nports <=0) {
> >+		err("no available ports");
> >+		goto err;
> >+	}
> >+	else if (vhci_driver->nports > MAXNPORT) {
> >+		err("port number exceeds %d", MAXNPORT);
> >+		goto err;
> >+	}
> >+
> > 	if (refresh_imported_device_list())
> > 		goto err;
> >
> >
> 
> Reviewed-by: Krzysztof Opasiak <k.opasiak@xxxxxxxxxxx>

Thank you so much, Krzysztof.

Yuyang
--
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