# \[PATCH\] HID: potential dereference of null pointer

- Subsystems: HID CORE LAYER, THE REST
- Maintainers: Jiri Kosina, Benjamin Tissoires, Linus Torvalds
- Status: LANDED (13251ce1dd9b · 2021-12-20 10:26)
- Landed in mainline as 13251ce1dd9b on 2021-12-20.
- List: linux-input
- 2 messages, 2 authors
- Page: https://ratatoskr.run/linux-input/2021/12/1609134/t

## \[PATCH\] HID: potential dereference of null pointer

- From: Jiasheng Jiang \<hidden\>
- Date: 2021-12-15 08:36:32 
- Message: https://ratatoskr.run/linux-input/2021/12/1609134.md

```text
The return value of devm_kzalloc() needs to be checked.
To avoid hdev->dev->driver_data to be null in case of the failure of
alloc.

Fixes: 14c9c014babe ("HID: add vivaldi HID driver")
Signed-off-by: Jiasheng Jiang <redacted>
---
 drivers/hid/hid-vivaldi.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/hid/hid-vivaldi.c b/drivers/hid/hid-vivaldi.c
index cd7ada48b1d9..72957a9f7117 100644
--- a/drivers/hid/hid-vivaldi.c
+++ b/drivers/hid/hid-vivaldi.c
@@ -57,6 +57,9 @@ static int vivaldi_probe(struct hid_device *hdev,
 	int ret;
 
 	drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
+	if (!drvdata)
+		return -ENOMEM;
+
 	hid_set_drvdata(hdev, drvdata);
 
 	ret = hid_parse(hdev);
-- 
2.25.1

```

## Re: \[PATCH\] HID: potential dereference of null pointer

- From: Benjamin Tissoires \<hidden\>
- Date: 2021-12-20 14:11:07 
- Message: https://ratatoskr.run/linux-input/2021/12/1613965.md

```text
On Wed, Dec 15, 2021 at 9:36 AM Jiasheng Jiang [ref] wrote:
>
> The return value of devm_kzalloc() needs to be checked.
> To avoid hdev->dev->driver_data to be null in case of the failure of
> alloc.
>
> Fixes: 14c9c014babe ("HID: add vivaldi HID driver")
> Signed-off-by: Jiasheng Jiang <redacted>
> ---

Thanks for the fix. I have now pushed it to hid.git, branch
for-5.16/upstream-fixes

Cheers,
Benjamin

>  drivers/hid/hid-vivaldi.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/hid/hid-vivaldi.c b/drivers/hid/hid-vivaldi.c
> index cd7ada48b1d9..72957a9f7117 100644
> --- a/drivers/hid/hid-vivaldi.c
> +++ b/drivers/hid/hid-vivaldi.c
> @@ -57,6 +57,9 @@ static int vivaldi_probe(struct hid_device *hdev,
>         int ret;
>
>         drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
> +       if (!drvdata)
> +               return -ENOMEM;
> +
>         hid_set_drvdata(hdev, drvdata);
>
>         ret = hid_parse(hdev);
> --
> 2.25.1
>

```
