Skip to content

Commit ff6b548

Browse files
JoseExpositoJiri Kosina
authored andcommitted
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
The function performs a check on its input parameters, however, the hdev parameter is used before the check. Initialize the stack variables after checking the input parameters to avoid a possible NULL pointer dereference. Fixes: 9614219 ("HID: uclogic: Extract tablet parameter discovery into a module") Addresses-Coverity-ID: 1443804 ("Null pointer dereference") Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
1 parent 0a94131 commit ff6b548

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

drivers/hid/hid-uclogic-params.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -709,9 +709,9 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
709709
struct hid_device *hdev)
710710
{
711711
int rc;
712-
struct usb_device *udev = hid_to_usb_dev(hdev);
713-
struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
714-
__u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
712+
struct usb_device *udev;
713+
struct usb_interface *iface;
714+
__u8 bInterfaceNumber;
715715
bool found;
716716
/* The resulting parameters (noop) */
717717
struct uclogic_params p = {0, };
@@ -725,6 +725,10 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
725725
goto cleanup;
726726
}
727727

728+
udev = hid_to_usb_dev(hdev);
729+
iface = to_usb_interface(hdev->dev.parent);
730+
bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
731+
728732
/* If it's not a pen interface */
729733
if (bInterfaceNumber != 0) {
730734
/* TODO: Consider marking the interface invalid */

0 commit comments

Comments
 (0)