Hello! On 5/22/2017 11:41 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. Reviewed-by: Krzysztof Opasiak <k.opasiak@xxxxxxxxxxx> Signed-off-by: Yuyang Du <yuyang.du@xxxxxxxxx> Acked-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx> --- 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..0a6d113 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) {
} and *else if* should be on te same line. Not sure how I missed that in the 1st review, sorry about that...
+ err("port number exceeds %d", MAXNPORT); + goto err; + } + if (refresh_imported_device_list()) goto err;
MBR, Sergei -- 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