Selaa lähdekoodia

gpio: potential null dereference

Smatch found a potential null dereference in gpio_setup_irq().  The
"pdesc" variable is allocated with idr_find() that can return NULL.  If
gpio_setup_irq() is called with 0 as gpio_flags and "pdesc" is null, it
would OOPs here.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Dan Carpenter 15 vuotta sitten
vanhempi
commit
3913fd5ed4
1 muutettua tiedostoa jossa 2 lisäystä ja 1 poistoa
  1. 2 1
      drivers/gpio/gpiolib.c

+ 2 - 1
drivers/gpio/gpiolib.c

@@ -416,7 +416,8 @@ static int gpio_setup_irq(struct gpio_desc *desc, struct device *dev,
 	return 0;
 	return 0;
 
 
 free_sd:
 free_sd:
-	sysfs_put(pdesc->value_sd);
+	if (pdesc)
+		sysfs_put(pdesc->value_sd);
 free_id:
 free_id:
 	idr_remove(&pdesc_idr, id);
 	idr_remove(&pdesc_idr, id);
 	desc->flags &= GPIO_FLAGS_MASK;
 	desc->flags &= GPIO_FLAGS_MASK;