[PATCH] HID: hid-ntrig: Fix potential memory leak in ntrig_report_version()

Masami Ichikawa posted 1 patch 2 weeks, 1 day ago
drivers/hid/hid-ntrig.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] HID: hid-ntrig: Fix potential memory leak in ntrig_report_version()
Posted by Masami Ichikawa 2 weeks, 1 day ago
The kmalloc() was called before checking hid_is_usb(hdev). If hid_is_usb()
returned false, the function would return early and leak the allocated
memory.
It is safe to move the kmalloc() call after the hid_is_usb() check to avoid
unnecessary allocation and potential memory leak.

Fixes: 185c926283da ("HID: hid-ntrig: fix unable to handle page fault in ntrig_report_version()")
Signed-off-by: Masami Ichikawa <masami256@gmail.com>
---
 drivers/hid/hid-ntrig.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/hid/hid-ntrig.c b/drivers/hid/hid-ntrig.c
index 0f76e241e0af..52e8e7fe9681 100644
--- a/drivers/hid/hid-ntrig.c
+++ b/drivers/hid/hid-ntrig.c
@@ -142,11 +142,12 @@ static void ntrig_report_version(struct hid_device *hdev)
 	int ret;
 	char buf[20];
 	struct usb_device *usb_dev = hid_to_usb_dev(hdev);
-	unsigned char *data = kmalloc(8, GFP_KERNEL);
+	unsigned char *data = NULL;
 
 	if (!hid_is_usb(hdev))
 		return;
 
+	data = kmalloc(8, GFP_KERNEL);
 	if (!data)
 		goto err_free;
 
-- 
2.51.0
Re: [PATCH] HID: hid-ntrig: Fix potential memory leak in ntrig_report_version()
Posted by Markus Elfring 2 weeks, 1 day ago
…
> It is safe to move the kmalloc() call after the hid_is_usb() check to avoid
> unnecessary allocation and potential memory leak.

* See also:
  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.17-rc6#n94

* How do you think about to increase the application of scope-based resource management?
  https://elixir.bootlin.com/linux/v6.17-rc6/source/include/linux/slab.h#L476

* Can a summary phrase like “Prevent memory leak in ntrig_report_version()”
  be nicer?


Regards,
Markus
Re: [PATCH] HID: hid-ntrig: Fix potential memory leak in ntrig_report_version()
Posted by Masami Ichikawa 2 weeks ago
Thank you for the review.

On Wed, Sep 17, 2025 at 4:46 PM Markus Elfring <Markus.Elfring@web.de> wrote:
>
> …
> > It is safe to move the kmalloc() call after the hid_is_usb() check to avoid
> > unnecessary allocation and potential memory leak.
>
> * See also:
>   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.17-rc6#n94
>
> * How do you think about to increase the application of scope-based resource management?
>   https://elixir.bootlin.com/linux/v6.17-rc6/source/include/linux/slab.h#L476
>

I think using the DEFINE_FREE macro simplifies cleanup, especially
when an error occurs.

> * Can a summary phrase like “Prevent memory leak in ntrig_report_version()”
>   be nicer?
>

I see. I will rewrite commit log.

>
> Regards,
> Markus


Regards,
-- 
Masami Ichikawa