Commit 53f731f5 authored by Masami Ichikawa's avatar Masami Ichikawa Committed by Jiri Kosina
Browse files

HID: hid-ntrig: Prevent memory leak in ntrig_report_version()



Use a scope-based cleanup helper for the buffer allocated with kmalloc()
in ntrig_report_version() to simplify the cleanup logic and prevent
memory leaks (specifically the !hid_is_usb()-case one).

[jkosina@suse.com: elaborate on the actual existing leak]
Fixes: 185c9262 ("HID: hid-ntrig: fix unable to handle page fault in ntrig_report_version()")
Signed-off-by: default avatarMasami Ichikawa <masami256@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.com>
parent 4d3a13af
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -142,13 +142,13 @@ 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 __free(kfree) = kmalloc(8, GFP_KERNEL);

	if (!hid_is_usb(hdev))
		return;

	if (!data)
		goto err_free;
		return;

	ret = usb_control_msg(usb_dev, usb_rcvctrlpipe(usb_dev, 0),
			      USB_REQ_CLEAR_FEATURE,
@@ -163,9 +163,6 @@ static void ntrig_report_version(struct hid_device *hdev)
		hid_info(hdev, "Firmware version: %s (%02x%02x %02x%02x)\n",
			 buf, data[2], data[3], data[4], data[5]);
	}

err_free:
	kfree(data);
}

static ssize_t show_phys_width(struct device *dev,