[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4df7c198.210b.1764d38a318.Coremail.shaojie.dong@isrc.iscas.ac.cn>
Date: Thu, 10 Dec 2020 23:15:26 +0800 (GMT+08:00)
From: shaojie.dong@...c.iscas.ac.cn
To: "Greg KH" <gregkh@...uxfoundation.org>
Cc: Larry.Finger@...inger.net, florian.c.schilhabel@...glemail.com,
devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: Re: Re: [PATCH] staging: rtl8712: check register_netdev() return
value
Hi
Thanks ! I will modify sign name correctly later
Sorry to say that I have no rtl8712 hardware, so that I could not test it.
From Dan Carpenter's email reply, "free_netdev(adapter->pnetdev)" function may cause use after free issue
So that I reply email to ensure if this return value should be check or how to handle this return value error
> -----原始邮件-----
> 发件人: "Greg KH" <gregkh@...uxfoundation.org>
> 发送时间: 2020-12-09 23:13:40 (星期三)
> 收件人: shaojie.dong@...c.iscas.ac.cn
> 抄送: Larry.Finger@...inger.net, florian.c.schilhabel@...glemail.com, devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
> 主题: Re: [PATCH] staging: rtl8712: check register_netdev() return value
>
> On Wed, Dec 09, 2020 at 11:01:24PM +0800, shaojie.dong@...c.iscas.ac.cn wrote:
> > From: "shaojie.dong" <shaojie.dong@...c.iscas.ac.cn>
> >
> > Function register_netdev() can fail, so we should check it's return value
> >
> > Signed-off-by: shaojie.dong <shaojie.dong@...c.iscas.ac.cn>
>
> I doubt you sign your name with a '.' in it, right?
>
> Please resend with the correct name, and using Capital letters where
> needed.
>
> > ---
> > drivers/staging/rtl8712/hal_init.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c
> > index 715f1fe8b..38a3e3d44 100644
> > --- a/drivers/staging/rtl8712/hal_init.c
> > +++ b/drivers/staging/rtl8712/hal_init.c
> > @@ -45,7 +45,10 @@ static void rtl871x_load_fw_cb(const struct firmware *firmware, void *context)
> > }
> > adapter->fw = firmware;
> > /* firmware available - start netdev */
> > - register_netdev(adapter->pnetdev);
> > + if (register_netdev(adapter->pnetdev) != 0) {
> > + netdev_err(adapter->pnetdev, "register_netdev() failed\n");
> > + free_netdev(adapter->pnetdev);
> > + }
>
> Did you test this to see if this really properly cleans everything up?
>
> And your if statement can be simplified, please do so.
>
> thanks,
>
> greg k-h
</shaojie.dong@...c.iscas.ac.cn></shaojie.dong@...c.iscas.ac.cn></gregkh@...uxfoundation.org>
Powered by blists - more mailing lists