lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 9 Oct 2020 22:57:44 +0200
From:   Alexandre Belloni <alexandre.belloni@...tlin.com>
To:     dinghao.liu@....edu.cn
Cc:     Chen-Yu Tsai <wens@...e.org>, Kangjie Lu <kjlu@....edu>,
        linux-rtc@...r.kernel.org, Alessandro Zummo <a.zummo@...ertech.it>,
        linux-kernel <linux-kernel@...r.kernel.org>,
        Maxime Ripard <mripard@...nel.org>,
        linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>
Subject: Re: Re: [PATCH] rtc: sun6i: Fix memleak in sun6i_rtc_clk_init

On 26/08/2020 16:55:14+0800, dinghao.liu@....edu.cn wrote:
> > On Sun, Aug 23, 2020 at 3:59 PM Dinghao Liu <dinghao.liu@....edu.cn> wrote:
> > >
> > > When clk_hw_register_fixed_rate_with_accuracy() fails,
> > > clk_data should be freed. It's the same for the subsequent
> > > error paths.
> > 
> > I suppose you should also unregister the already registered clocks
> > in the latter two error paths?
> > 
> 
> Sounds reasonable. But I find that the existing kernel code takes different
> strategies for this case. of_sama5d4_sckc_setup() uses clk_hw_unregister() 
> after clk_hw_register_fixed_rate_with_accuracy(), while _of_fixed_clk_setup()
> uses clk_hw_unregister_fixed_rate(). But at91sam926x_pmc_setup() just does
> nothing in this case.

I guess you should use clk_hw_unregister_fixed_rate after
clk_hw_register_fixed_rate_with_accuracy. clk_hw_unregister will leak
the struct clk_fixed_rate. It doesn't matter too much for
of_sama5d4_sckc_setup and at91sam926x_pmc_setup because if th clock
can't be registered, the platform will not boot.

> 
> Also, tcon_ch1_setup() uses clk_unregister() after clk_register(), while
> clk_register_vco_pll() just does nothing. 
> 
> So I'm not sure if we should register here and which unregister function to 
> use. Would you please give me more specific advice about this problem?
> 
> Regards,
> Dinghao

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ