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

Tony Lindgren tony at atomide.com
Fri Jan 12 13:08:44 PST 2018


* Grygorii Strashko <grygorii.strashko at ti.com> [180112 20:36]:
> Hi
> 
> On 01/10/2018 10:54 PM, Qi Hou wrote:
> > 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.
> 
> Does it in sync with Keerthy's work [1]

First fixes, then new stuff! Keerthy's work will have to
wait for v4.17, we want that series sitting in Linux next
for several weeks.

Regards,

Tony

> [1] https://www.spinics.net/lists/linux-omap/msg141100.html



More information about the linux-arm-kernel mailing list