DragonFlyBSD Kernel Audit
DF-1844 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/misc/gpio/gpio.c b/sys/dev/misc/gpio/gpio.c
--- a/sys/dev/misc/gpio/gpio.c
+++ b/sys/dev/misc/gpio/gpio.c
@@ -463,6 +463,9 @@
 		gpi = (struct gpio_info *)ap->a_data;
 		gpi->npins = gp->npins;
 		if (gpi->pins != NULL) {
+			int pi;
+			for (pi = 0; pi < gp->npins; pi++)
+				gp->pins[pi].dev = NULL;
 			error = copyout(gp->pins, gpi->pins,
 			    sizeof(struct gpio_pin)*gp->npins);
 		}