gpiolib: fix invalid pointer access in debugfs
PATCH v2 1/1 gpiolib: fix invalid pointer access in debugfs
From: Bartosz Golaszewski <[email protected]>
If the memory allocation in gpiolib_seq_start() fails, the s->private field remains uninitialized and is later dereferenced without checking in gpiolib_seq_stop(). Initialize s->private to NULL before calling kzalloc() and check it before dereferencing it.
---
Changes in v2:
- Initialize priv right before checking it for NULL in gpiolib_seq_stop()
drivers/gpio/gpiolib.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
drivers/gpio/gpiolib.c +7 -1
@@ -5303,6 +5303,8 @@ static void *gpiolib_seq_start(struct seq_file *s, loff_t *pos)struct gpio_device *gdev;loff_t index = *pos; + s->private =NULL ; + priv =kzalloc (sizeof (*priv),GFP_KERNEL );if (!priv)return NULL ;
@@ -5336,7 +5338,11 @@ static void *gpiolib_seq_next(struct seq_file *s, void *v, loff_t *pos)static void gpiolib_seq_stop (struct seq_file *s,void *v) { -struct gpiolib_seq_priv *priv = s->private; +struct gpiolib_seq_priv *priv; + + priv = s->private; +if (!priv) +return ;srcu_read_unlock (&gpio_devices_srcu, priv->idx);kfree (priv);
Signature · 1 line
2.51.0
Quoted 4 lines · Bartosz Golaszewski
If the memory allocation in
gpiolib_seq_start()fails, thes->privatefield remains uninitialized and is later dereferenced without checking ingpiolib_seq_stop(). Initializes->privateto NULL before callingkzalloc()and check it before dereferencing it.
Signature · 2 lines
With Best Regards, Andy Shevchenko
Bartosz Golaszewski
AppliedFrom: Bartosz Golaszewski <[email protected]>
Quoted 6 lines · Bartosz Golaszewski
If the memory allocation in
gpiolib_seq_start()fails, thes->privatefield remains uninitialized and is later dereferenced without checking ingpiolib_seq_stop(). Initializes->privateto NULL before callingkzalloc()and check it before dereferencing it.
Applied, thanks!
[1/1] gpiolib: fix invalid pointer access in debugfs
https://git.kernel.org/brgl/linux/c/2f6115ad8864cf3f48598f26c74c7c8e5c391919
Best regards,
Signature · 1 line
Bartosz Golaszewski <[email protected]>