From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>,
Hans de Goede <hdegoede@redhat.com>
Cc: "Rafael J . Wysocki" <rjw@rjwysocki.net>,
ACPI Devel Maling List <linux-acpi@vger.kernel.org>
Subject: Re: [PATCH] ACPI: scan: Make acpi_bus_get_device() clear the adev ptr on error
Date: Tue, 19 Jan 2021 09:41:55 -0600 [thread overview]
Message-ID: <e825c859-e885-c02c-43b4-3e6f2277e120@linux.intel.com> (raw)
In-Reply-To: <CAJZ5v0gk0ninRntm508SAgzSrRe5gjZ+-e5ac1h-Cx2reVOSfg@mail.gmail.com>
On 1/18/21 7:58 AM, Rafael J. Wysocki wrote:
> On Fri, Jan 15, 2021 at 10:59 PM Hans de Goede <hdegoede@redhat.com> wrote:
>>
>> Set the acpi_device pointer which acpi_bus_get_device()
>> returns-by-reference to NULL on error.
>>
>> We've recently had 2 cases where callers of acpi_bus_get_device()
>> did not properly error check the return value, using the
>> returned-by-reference acpi_device pointer blindly, set it to NULL
>> so that this will lead to an immediate oops, rather then following
>> a pointer to who knows what.
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>
> This should fix the crash reported by Pierre-Louis, so let me apply it
> instead of the two debug changes posted by me
> (https://lore.kernel.org/linux-acpi/98e6ed8e-884e-adb4-a146-a66daefa94a7@redhat.com/T/#md5add2fe554a30e3a929d87a66b435f4cc8bf628).
>
> Pierre-Louis, can you please double check that the issue goes away
> with this patch applied?
yep, tested twice
Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Thanks Hans and Rafael for your work, much appreciated.
>> ---
>> drivers/acpi/scan.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
>> index c575c9b67f76..c53e88deee1d 100644
>> --- a/drivers/acpi/scan.c
>> +++ b/drivers/acpi/scan.c
>> @@ -585,6 +585,8 @@ static int acpi_get_device_data(acpi_handle handle, struct acpi_device **device,
>> if (!device)
>> return -EINVAL;
>>
>> + *device = NULL;
>> +
>> status = acpi_get_data_full(handle, acpi_scan_drop_device,
>> (void **)device, callback);
>> if (ACPI_FAILURE(status) || !*device) {
>> --
>> 2.28.0
>>
prev parent reply other threads:[~2021-01-19 16:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-15 21:57 [PATCH] ACPI: scan: Make acpi_bus_get_device() clear the adev ptr on error Hans de Goede
2021-01-18 13:58 ` Rafael J. Wysocki
2021-01-18 16:08 ` Hans de Goede
2021-01-18 16:21 ` Rafael J. Wysocki
2021-01-18 16:23 ` Hans de Goede
2021-01-19 15:41 ` Pierre-Louis Bossart [this message]
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=e825c859-e885-c02c-43b4-3e6f2277e120@linux.intel.com \
--to=pierre-louis.bossart@linux.intel.com \
--cc=hdegoede@redhat.com \
--cc=linux-acpi@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=rjw@rjwysocki.net \
/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.