Am 2020-06-20 um 9:21 a.m. schrieb
Julia Lawall:
On Sat, 20 Jun 2020, Markus Elfring wrote:The function kobject_init_and_add alloc memory like: kobject_init_and_add->kobject_add_varg->kobject_set_name_vargs ->kvasprintf_const->kstrdup_const->kstrdup->kmalloc_track_caller ->kmalloc_slab, in err branch this memory not free. If use kmemleak, this path maybe catched. These changes are to add kobject_put in kobject_init_and_add failed branch, fix potential memleak.…Changes since V2: *remove duplicate kobject_put in kfd_procfs_init.Under which circumstances are going to improve this change description accordingly?Bernard, please update the log message as well. The mail you sent was much more clear, but mail just gets lost over time. The log message itself should be improved.
Hi all,
The behaviour of kobject_init_and_add is documented in the kernel source: https://elixir.bootlin.com/linux/v5.7.2/source/lib/kobject.c#L459:
* If this function returns an error, kobject_put() must be called to * properly clean up the memory associated with the object. This is the * same type of error handling after a call to kobject_add() and kobject * lifetime rules are the same here.
No need to have a complicated explanation with a call stack in the change description. Just point to the kernel documentation.
Regards,
Felix
juliaWould you like to add the tag “Fixes” to the commit message? Regards, Markus>
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel