diff options
author | Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | 2019-06-12 17:38:39 +0200 |
---|---|---|
committer | Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | 2019-06-12 18:03:01 +0200 |
commit | de9409762de14b5d909925c5db2e704ec13c754b (patch) | |
tree | 59d5e660e070184bf0b8ceedd469872bf1c4baef | |
parent | 70f8785b9ee364828e9a0f38275283024df621c2 (diff) | |
download | firewall3-de9409762de14b5d909925c5db2e704ec13c754b.tar.gz |
utils: coverity resource leak warning
solve coverity reported resource leak (socket handle)
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
-rw-r--r-- | utils.c | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -944,18 +944,24 @@ bool fw3_check_loopback_dev(const char *name) { struct ifreq ifr; - int s = socket(AF_LOCAL, SOCK_DGRAM, 0); + int s; bool rv = false; + s = socket(AF_LOCAL, SOCK_DGRAM, 0); + + if (s < 0) + return false; + memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name) - 1); - if (s < 0 || ioctl(s, SIOCGIFFLAGS, &ifr) < 0) - goto out; + if (ioctl(s, SIOCGIFFLAGS, &ifr) >= 0) { + if (ifr.ifr_flags & IFF_LOOPBACK) + rv = true; + } + + close(s); - if (ifr.ifr_flags & IFF_LOOPBACK) - rv = true; -out: return rv; } |