From a21bbe557d398b3a98c0da2460677e51997b8bb2 Mon Sep 17 00:00:00 2001 From: Justin Maggard Date: Thu, 16 Jan 2014 13:11:54 -0800 Subject: [PATCH] Fix a couple file descriptor leaks. --- getifaddr.c | 7 +++---- minissdp.c | 2 ++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/getifaddr.c b/getifaddr.c index 0f0d351..aea25da 100644 --- a/getifaddr.c +++ b/getifaddr.c @@ -202,11 +202,10 @@ getsyshwaddr(char *buf, int len) if (fd < 0) continue; strncpy(ifr.ifr_name, p->ifa_name, IFNAMSIZ); - if (ioctl(fd, SIOCGIFHWADDR, &ifr) < 0) - { - close(fd); + ret = ioctl(fd, SIOCGIFHWADDR, &ifr); + close(fd); + if (ret < 0) continue; - } memcpy(mac, ifr.ifr_hwaddr.sa_data, 6); #else struct sockaddr_dl *sdl; diff --git a/minissdp.c b/minissdp.c index d754bdb..8b6a76e 100644 --- a/minissdp.c +++ b/minissdp.c @@ -771,6 +771,7 @@ SubmitServicesToMiniSSDPD(const char *host, unsigned short port) { DPRINTF(E_ERROR, L_SSDP, "connect(\"%s\"): %s", minissdpdsocketpath, strerror(errno)); + close(s); return -1; } for (i = 0; known_service_types[i]; i++) @@ -802,6 +803,7 @@ SubmitServicesToMiniSSDPD(const char *host, unsigned short port) if(write(s, buffer, p - buffer) < 0) { DPRINTF(E_ERROR, L_SSDP, "write(): %s", strerror(errno)); + close(s); return -1; } }