From 89473e5ba4fef6df72b6f2bcfb76aa0a4959bf1f Mon Sep 17 00:00:00 2001 From: Cosmin Popescu Date: Tue, 8 Jan 2019 13:44:21 +0200 Subject: [PATCH] gpio.c: Add fix for closing of uninitialzed fds Signed-off-by: Cosmin Popescu Signed-off-by: Mihai Tudor Panu --- src/gpio/gpio.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gpio/gpio.c b/src/gpio/gpio.c index 2a78aef..f08f41f 100644 --- a/src/gpio/gpio.c +++ b/src/gpio/gpio.c @@ -68,7 +68,10 @@ mraa_gpio_close_event_handles_sysfs(int fds[], int num_fds) } for (int i = 0; i < num_fds; ++i) { - close(fds[i]); + // Check required to avoid closing stdin and of an uninitialized fd + if(fds[i] != 0) { + close(fds[i]); + } } free(fds); @@ -603,7 +606,7 @@ mraa_gpio_interrupt_handler(void* arg) return NULL; } - int *fps = malloc(dev->num_pins * sizeof(int)); + int *fps = calloc(dev->num_pins, sizeof(int)); if (!fps) { syslog(LOG_ERR, "mraa_gpio_interrupt_handler_multiple() malloc error"); return NULL;