Re: [RFC v1 0/3] Address potential user-after-free on module unload

From: Greg KH
Date: Fri Feb 08 2019 - 01:51:33 EST


On Wed, Feb 06, 2019 at 09:30:29AM -0800, Dmitry Torokhov wrote:
> On Wed, Feb 6, 2019 at 8:47 AM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >
> > On Tue, Feb 05, 2019 at 02:12:31PM -0500, Sven Van Asbroeck wrote:
> > > On Tue, Feb 5, 2019 at 1:43 PM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > > >
> > > >
> > > > It really should happen when the device is removed (if it is a driver
> > > > that binds to a device.)
> > >
> > > Absolutely. That's why I'm advocating adding a devm_init_work(),
> > > which will take care of this automatically.
> > >
> > > But it's of course not universally applicable. Not all drivers use devm.
> >
> > Ick, no, watch out for devm() calls. Odds are this is _NOT_ what you
> > want to do for a device. Remember when devm calls get freed (hint, not
> > at driver unbind/unload, but at device structure removal.
>
>
> ??? We unwind devm on probe() failure and after remove() is called.
> The device can live on.

{sigh} you are right, I don't know what I was thinking. Then why were
the DRM developers so upset that they didn't see this happening
recently? Anyway, all should be fine here, nevermind...

thanks,

greg k-h