-
Notifications
You must be signed in to change notification settings - Fork 589
Description
Two issues about error handling in export_store function.
-
When vinput_register_vdevice fails, the current error handling process calls device_unregister followed by vinput_destroy_vdevice. However, device_unregister triggers its release function, which already includes a call to vinput_destroy_vdevice. As a result, vinput_destroy_vdevice is called twice. Since vinput_destroy_vdevice contains module_put, this double call must be avoided to prevent potential reference count issues.
-
The error handling paths following a successful vinput_alloc_vdevice call are missing a corresponding input_free_device call. Since vinput_alloc_vdevice internally calls input_allocate_device, and input_register_device has not been called yet, input_free_device should be used to properly free the allocated input_device struct in this scenario [1].
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/input/input.c#n2094
I think I can make the patch tomorrow.