[PATCH, v3] arm: omap2: timer: fix a kmemleak caused in omap_get_timer_dt

Tony Lindgren tony at atomide.com
Wed Feb 14 08:18:28 PST 2018


* Qi Hou <qi.hou at windriver.com> [180110 20:54]:
> When more than one GP timers are used as kernel system timers and the
> corresponding nodes in device-tree are marked with the same "disabled"
> property, then the "attr" field of the property will be initialized
> more than once as the property being added to sys file system via
> __of_add_property_sysfs().
> 
> In __of_add_property_sysfs(), the "name" field of pp->attr.attr is set
> directly to the return value of safe_name(), without taking care of
> whether it's already a valid pointer to a memory block. If it is, its
> old value will always be overwritten by the new one and the memory block
> allocated before will a "ghost", then a kmemleak happened.
> 
> That the same "disabled" property being added to different nodes of device
> tree would cause that kind of kmemleak overhead, at leat once.
> 
> To fix it, allocate the property dynamically, and delete static one.

Thanks applying into omap-for-v4.16/fixes.

Tony



More information about the linux-arm-kernel mailing list