Re: [PATCH] gpiolib: Fix potential NULL pointer dereference in gpiod_get_label()
From: Geert Uytterhoeven
Date: Fri Oct 04 2024 - 03:40:23 EST
On Thu, Oct 3, 2024 at 3:14 PM Prabhakar <prabhakar.csengg@xxxxxxxxx> wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
>
> In `gpiod_get_label()`, it is possible that `srcu_dereference_check()` may
> return a NULL pointer, leading to a scenario where `label->str` is accessed
> without verifying if `label` itself is NULL.
>
> This patch adds a proper NULL check for `label` before accessing
> `label->str`. The check for `label->str != NULL` is removed because
> `label->str` can never be NULL if `label` is not NULL.
>
> This fixes the issue where the label name was being printed as `(efault)`
> when dumping the sysfs GPIO file when `label == NULL`.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
Neat!
Took me an aha-erlebnis to realize why it didn't crash immediately when
accessing label->str, but it just returns the address relative to the
zero base...
Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds