diff options
| author | Dan Carpenter <[email protected]> | 2025-02-28 13:03:47 +0000 |
|---|---|---|
| committer | Bartosz Golaszewski <[email protected]> | 2025-02-28 15:30:48 +0000 |
| commit | 64407f4b5807dc9dec8135e1bfd45d2cb11b4ea0 (patch) | |
| tree | 1602b857ce5915e22ef745a009022e6a9e6fb1bb /lib/net_utils.c | |
| parent | Linux 6.14-rc4 (diff) | |
| download | kernel-64407f4b5807dc9dec8135e1bfd45d2cb11b4ea0.tar.gz kernel-64407f4b5807dc9dec8135e1bfd45d2cb11b4ea0.zip | |
gpiolib: Fix Oops in gpiod_direction_input_nonotify()
The gpiod_direction_input_nonotify() function is supposed to return zero
if the direction for the pin is input. But instead it accidentally
returns GPIO_LINE_DIRECTION_IN (1) which will be cast into an ERR_PTR()
in gpiochip_request_own_desc(). The callers dereference it and it leads
to a crash.
I changed gpiod_direction_output_raw_commit() just for consistency but
returning GPIO_LINE_DIRECTION_OUT (0) is fine.
Cc: [email protected]
Fixes: 9d846b1aebbe ("gpiolib: check the return value of gpio_chip::get_direction()")
Signed-off-by: Dan Carpenter <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[Bartosz: moved the variable declarations to the top of the functions]
Signed-off-by: Bartosz Golaszewski <[email protected]>
Diffstat (limited to 'lib/net_utils.c')
0 files changed, 0 insertions, 0 deletions
