Re: [PATCH v4 OPT2] driver core: Fix use-after-free and double free on glue directory

From: Benjamin Herrenschmidt
Date: Thu Jul 04 2019 - 02:29:33 EST


On Thu, 2019-07-04 at 07:40 +0200, Greg KH wrote:
> On Thu, Jul 04, 2019 at 08:57:13AM +1000, Benjamin Herrenschmidt
> wrote:
> > On Wed, 2019-07-03 at 21:36 +0200, Greg KH wrote:
> > >
> > > > -static struct kobject *get_device_parent(struct device *dev,
> > > > - struct device *parent)
> > > > +/**
> > > > + * __get_device_parent() - Get the parent device kobject.
> > > > + * @dev: Pointer to the device structure.
> > > > + * @parent: Pointer to the parent device structure.
> > > > + * @lock: When we live in a glue directory, should we hold the
> > > > + * gdp_mutex lock when this function returns? If @lock
> > > > + * is true, this function returns with the gdp_mutex
> > > > + * holed. Otherwise it will not.
> > >
> > > Ugh, if you are trying to get me to hate one version of these
> > > patches,
> > > this is how you do it :)
> > >
> > > A function should not "sometimes takes a lock, sometimes does
> > > not,
> > > depending on a parameter passed into it" That way lies
> > > madness...
> >
> > Yes, I prefer this approach to the fix but I dont like the patch
> > either
> > for the same reason...
> >
> > ...
> >
> > > Anyway, this is a mess.
> > >
> > > Ugh I hate glue dirs...
> >
> > Amen...
>
> Well, can we just remove them? Who relies on them anymore?

Isn't it an ABI ? I'm sure there are going to be userspace things that
break if we do...

Cheers,
Ben.