lkml.org 
[lkml]   [2021]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 19/30] ACPI: fix NULL pointer dereference
    Date
    From: Linus Torvalds <torvalds@linux-foundation.org>

    [ Upstream commit fc68f42aa737dc15e7665a4101d4168aadb8e4c4 ]

    Commit 71f642833284 ("ACPI: utils: Fix reference counting in
    for_each_acpi_dev_match()") started doing "acpi_dev_put()" on a pointer
    that was possibly NULL. That fails miserably, because that helper
    inline function is not set up to handle that case.

    Just make acpi_dev_put() silently accept a NULL pointer, rather than
    calling down to put_device() with an invalid offset off that NULL
    pointer.

    Link: https://lore.kernel.org/lkml/a607c149-6bf6-0fd0-0e31-100378504da2@kernel.dk/
    Reported-and-tested-by: Jens Axboe <axboe@kernel.dk>
    Tested-by: Daniel Scally <djrscally@gmail.com>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/acpi/acpi_bus.h | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
    index 37dac195adbb..6ad3b89a8a2e 100644
    --- a/include/acpi/acpi_bus.h
    +++ b/include/acpi/acpi_bus.h
    @@ -689,7 +689,8 @@ acpi_dev_get_first_match_dev(const char *hid, const char *uid, s64 hrv);

    static inline void acpi_dev_put(struct acpi_device *adev)
    {
    - put_device(&adev->dev);
    + if (adev)
    + put_device(&adev->dev);
    }
    #else /* CONFIG_ACPI */

    --
    2.30.2


    \
     
     \ /
      Last update: 2021-08-06 10:23    [W:2.309 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site