From 5df6379df17fd7875e54ef7c5b5d07c5edb95644 Mon Sep 17 00:00:00 2001 From: cbdev Date: Fri, 16 Mar 2018 00:05:27 +0100 Subject: Fix resource leaks on error --- backends/artnet.c | 1 + backends/sacn.c | 1 + config.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/backends/artnet.c b/backends/artnet.c index c16e630..d167dec 100644 --- a/backends/artnet.c +++ b/backends/artnet.c @@ -83,6 +83,7 @@ static int artnet_listener(char* host, char* port){ //store fd artnet_fd = realloc(artnet_fd, (artnet_fds + 1) * sizeof(artnet_descriptor)); if(!artnet_fd){ + close(fd); fprintf(stderr, "Failed to allocate memory\n"); return -1; } diff --git a/backends/sacn.c b/backends/sacn.c index 9a3202d..57ac789 100644 --- a/backends/sacn.c +++ b/backends/sacn.c @@ -117,6 +117,7 @@ static int sacn_listener(char* host, char* port, uint8_t fd_flags){ //store fd global_cfg.fd = realloc(global_cfg.fd, (global_cfg.fds + 1) * sizeof(sacn_fd)); if(!global_cfg.fd){ + close(fd); fprintf(stderr, "Failed to allocate memory\n"); return -1; } diff --git a/config.c b/config.c index f03d98a..b81aeaf 100644 --- a/config.c +++ b/config.c @@ -43,6 +43,8 @@ static int config_map(char* to_raw, char* from_raw){ int rv = 1; if(!from || !to){ + free(from); + free(to); fprintf(stderr, "Failed to allocate memory\n"); return 1; } -- cgit v1.2.3