From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-kernel@vger.kernel.org, Xiyu Yang <xiyuyang19@fudan.edu.cn>,
Xin Xiong <xiongx18@fudan.edu.cn>, Xin Tan <tanxin.ctf@gmail.com>,
Tony Lindgren <tony@atomide.com>,
Yang Li <yang.lee@linux.alibaba.com>,
linux-mmc@vger.kernel.org, stable <stable@vger.kernel.org>,
whitehat002 <hackyzh002@gmail.com>
Subject: Re: [PATCH] moxart: fix potential use-after-free on remove path
Date: Fri, 21 Jan 2022 14:54:39 +0100 [thread overview]
Message-ID: <Yeq7H0LSegfCNHzl@kroah.com> (raw)
In-Reply-To: <CAPDyKFpu0mGchoqdzE-qKc6=9ogncnTCwN8AR7g1wcMZLyRFsw@mail.gmail.com>
On Fri, Jan 21, 2022 at 01:41:27PM +0100, Ulf Hansson wrote:
> On Fri, 14 Jan 2022 at 08:59, Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> >
> > It was reported that the mmc host structure could be accessed after it
> > was freed in moxart_remove(), so fix this by saving the base register of
> > the device and using it instead of the pointer dereference.
> >
> > Cc: Ulf Hansson <ulf.hansson@linaro.org>
> > Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
> > Cc: Xin Xiong <xiongx18@fudan.edu.cn>
> > Cc: Xin Tan <tanxin.ctf@gmail.com>
> > Cc: Tony Lindgren <tony@atomide.com>
> > Cc: Yang Li <yang.lee@linux.alibaba.com>
> > Cc: linux-mmc@vger.kernel.org
> > Cc: stable <stable@vger.kernel.org>
> > Reported-by: whitehat002 <hackyzh002@gmail.com>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> > drivers/mmc/host/moxart-mmc.c | 9 +++++----
> > 1 file changed, 5 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/mmc/host/moxart-mmc.c b/drivers/mmc/host/moxart-mmc.c
> > index 16d1c7a43d33..f5d96940a9b8 100644
> > --- a/drivers/mmc/host/moxart-mmc.c
> > +++ b/drivers/mmc/host/moxart-mmc.c
> > @@ -697,6 +697,7 @@ static int moxart_remove(struct platform_device *pdev)
> > {
> > struct mmc_host *mmc = dev_get_drvdata(&pdev->dev);
> > struct moxart_host *host = mmc_priv(mmc);
> > + void __iomem *base = host->base;
> >
> > dev_set_drvdata(&pdev->dev, NULL);
> >
> > @@ -707,10 +708,10 @@ static int moxart_remove(struct platform_device *pdev)
> > mmc_remove_host(mmc);
> > mmc_free_host(mmc);
> >
> > - writel(0, host->base + REG_INTERRUPT_MASK);
> > - writel(0, host->base + REG_POWER_CONTROL);
> > - writel(readl(host->base + REG_CLOCK_CONTROL) | CLK_OFF,
> > - host->base + REG_CLOCK_CONTROL);
>
> Rather than doing it like this, I think it would be easier to move
> mmc_free_host() below this part. That's usually what mmc host drivers
> do clean up things in ->remove().
>
> > + writel(0, base + REG_INTERRUPT_MASK);
> > + writel(0, base + REG_POWER_CONTROL);
> > + writel(readl(base + REG_CLOCK_CONTROL) | CLK_OFF,
> > + base + REG_CLOCK_CONTROL);
> >
Ok, I can do that, I didn't know if it would cause any functionality
changes, so I was trying to preserve the same logic that the driver
currently has.
Do you have this device to test this with?
thanks,
greg k-h
next prev parent reply other threads:[~2022-01-21 13:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-14 7:59 [PATCH] moxart: fix potential use-after-free on remove path Greg Kroah-Hartman
2022-01-21 12:41 ` Ulf Hansson
2022-01-21 13:54 ` Greg Kroah-Hartman [this message]
2022-01-21 14:24 ` Ulf Hansson
2022-01-27 7:33 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yeq7H0LSegfCNHzl@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=hackyzh002@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=tanxin.ctf@gmail.com \
--cc=tony@atomide.com \
--cc=ulf.hansson@linaro.org \
--cc=xiongx18@fudan.edu.cn \
--cc=xiyuyang19@fudan.edu.cn \
--cc=yang.lee@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.