Check if interface structure is valid when getting endpoint 90/188890/1
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Tue, 11 Sep 2018 10:02:25 +0000 (12:02 +0200)
committerPaweł Szewczyk <p.szewczyk@samsung.com>
Tue, 11 Sep 2018 10:02:25 +0000 (12:02 +0200)
This prevents null-pointer dereference when interface structure is
allocated, but not properly initialized.

Change-Id: I9bf33eb06431346338668cee17a511174fc04a30
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
src/usb_host.c

index 410acc4d0f68268d4354373ade58b626e2c925b2..1aa12ead22134e9fb4b46b507e6f30e8b99b6e0b 100755 (executable)
@@ -1582,7 +1582,8 @@ int usb_host_interface_get_endpoint(usb_host_interface_h interface, int ep_index
        if (!usb_host_feature_enabled())
                return USB_HOST_ERROR_NOT_SUPPORTED;
 
-       if (!interface || !ep || ep_index >= interface->altsettings[interface->altsetting].num_endpoints) {
+       if (!interface || !ep || !interface->altsettings ||
+                       ep_index >= interface->altsettings[interface->altsetting].num_endpoints) {
                _E("Invalid parameter was passed");
                return USB_HOST_ERROR_INVALID_PARAMETER;
        }