| From c39be822e1fd37ac896288dfb414a4dbad0e602d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 5 Jan 2022 18:29:15 +0100 |
| Subject: HID: hid-uclogic-params: Invalid parameter check in |
| uclogic_params_frame_init_v1_buttonpad |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: José Expósito <jose.exposito89@gmail.com> |
| |
| [ Upstream commit aa320fdbbbb482c19100f51461bd0069753ce3d7 ] |
| |
| The function performs a check on the hdev input parameters, however, it |
| is used before the check. |
| |
| Initialize the udev variable after the sanity check to avoid a |
| possible NULL pointer dereference. |
| |
| Fixes: 9614219e9310e ("HID: uclogic: Extract tablet parameter discovery into a module") |
| Addresses-Coverity-ID: 1443763 ("Null pointer dereference") |
| Signed-off-by: José Expósito <jose.exposito89@gmail.com> |
| Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/hid/hid-uclogic-params.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/hid/hid-uclogic-params.c b/drivers/hid/hid-uclogic-params.c |
| index df12178a80da5..38f9bbad81c17 100644 |
| --- a/drivers/hid/hid-uclogic-params.c |
| +++ b/drivers/hid/hid-uclogic-params.c |
| @@ -451,7 +451,7 @@ static int uclogic_params_frame_init_v1_buttonpad( |
| { |
| int rc; |
| bool found = false; |
| - struct usb_device *usb_dev = hid_to_usb_dev(hdev); |
| + struct usb_device *usb_dev; |
| char *str_buf = NULL; |
| const size_t str_len = 16; |
| |
| @@ -461,6 +461,8 @@ static int uclogic_params_frame_init_v1_buttonpad( |
| goto cleanup; |
| } |
| |
| + usb_dev = hid_to_usb_dev(hdev); |
| + |
| /* |
| * Enable generic button mode |
| */ |
| -- |
| 2.34.1 |
| |