From: "José Expósito" <jose.exposito89@gmail.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: hadess@hadess.net, dmitry.torokhov@gmail.com,
rydberg@bitmath.org, lains@riseup.net, jikos@kernel.org,
benjamin.tissoires@redhat.com, linux-input@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] HID: logitech-hidpp: Fix double free on managed resource
Date: Sat, 23 Apr 2022 17:02:12 +0200 [thread overview]
Message-ID: <20220423150212.GA6661@elementary> (raw)
In-Reply-To: <876f7c92-4e50-401e-f0b0-c2942bd8b63d@redhat.com>
On Sat, Apr 23, 2022 at 01:41:30PM +0200, Hans de Goede wrote:
> Hi,
>
> On 4/22/22 18:17, José Expósito wrote:
> > As described in the documentation for devm_input_allocate_device():
> >
> > Managed input devices do not need to be explicitly unregistered or
> > freed as it will be done automatically when owner device unbinds from
> > its driver (or binding fails).
> >
> > However this driver was explicitly freeing the input device, allocated
> > using devm_input_allocate_device() through hidpp_allocate_input().
> >
> > Remove the call to input_free_device() to avoid a possible double free
> > error.
>
> Actually calling input_free_device() on a devm allocated input device
> is fine. The input subsystem has chosen to not have a
> separate devm_input_free_device(), instead input_free_device() knows
> if a device is allocated through devm and then also frees the devres
> tied to it:
>
> void input_free_device(struct input_dev *dev)
> {
> if (dev) {
> if (dev->devres_managed)
> WARN_ON(devres_destroy(dev->dev.parent,
> devm_input_device_release,
> devm_input_device_match,
> dev));
> input_put_device(dev);
> }
> }
Hi Hans,
Thanks for the code review.
Obviously, I completely misunderstood these functions, my bad.
Thanks for the explanation.
Please ignore the patchset.
Jose
> >
> > Fixes: c39e3d5fc9dd3 ("HID: logitech-hidpp: late bind the input device on wireless connection")
> > Signed-off-by: José Expósito <jose.exposito89@gmail.com>
> > ---
> > drivers/hid/hid-logitech-hidpp.c | 6 +-----
> > 1 file changed, 1 insertion(+), 5 deletions(-)
> >
> > diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
> > index 81de88ab2ecc..9c00a781ab57 100644
> > --- a/drivers/hid/hid-logitech-hidpp.c
> > +++ b/drivers/hid/hid-logitech-hidpp.c
> > @@ -3957,11 +3957,7 @@ static void hidpp_connect_event(struct hidpp_device *hidpp)
> > }
> >
> > hidpp_populate_input(hidpp, input);
> > -
> > - ret = input_register_device(input);
> > - if (ret)
> > - input_free_device(input);
> > -
>
> The original code does look wrong there though, since the input device
> is free-ed it should not be stored in hidpp->delayed_input, so this should be comes:
>
> ret = input_register_device(input);
> if (ret) {
> input_free_device(input);
> return;
> }
>
>
> Regards,
>
> Hans
>
>
> > hidpp->delayed_input = input;
> > }
> >
>
>
next prev parent reply other threads:[~2022-04-23 15:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-22 16:17 [PATCH 1/3] Input: goodix - Fix double free on managed resource José Expósito
2022-04-22 16:17 ` [PATCH 2/3] HID: logitech-hidpp: " José Expósito
2022-04-23 11:41 ` Hans de Goede
2022-04-23 15:02 ` José Expósito [this message]
2022-04-22 16:17 ` [PATCH 3/3] HID: wacom: " José Expósito
2022-04-23 11:42 ` Hans de Goede
2022-04-23 11:34 ` [PATCH 1/3] Input: goodix - " Hans de Goede
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=20220423150212.GA6661@elementary \
--to=jose.exposito89@gmail.com \
--cc=benjamin.tissoires@redhat.com \
--cc=dmitry.torokhov@gmail.com \
--cc=hadess@hadess.net \
--cc=hdegoede@redhat.com \
--cc=jikos@kernel.org \
--cc=lains@riseup.net \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rydberg@bitmath.org \
/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.