From 8deb52a849cb1b7479ddda1065cbba7c83fd13c4 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Mon, 6 Feb 2017 15:51:10 +0100 Subject: [PATCH] Fix leaks of sockets on errors. Signed-off-by: Miroslav Lichvar --- clock.c | 2 ++ rtnl.c | 1 + 2 files changed, 3 insertions(+) diff --git a/clock.c b/clock.c index 6ec3e72..629a160 100644 --- a/clock.c +++ b/clock.c @@ -830,11 +830,13 @@ static int clock_add_port(struct clock *c, int phc_index, } index = sk_interface_index(fd, iface->name); if (index < 0) { + close(fd); return -1; } snprintf(key, sizeof(key), "%d", index); if (hash_insert(c->index2port, key, p)) { pr_err("failed to add port with index %d twice!", index); + close(fd); return -1; } close(fd); diff --git a/rtnl.c b/rtnl.c index 7f5dc45..251b5f3 100644 --- a/rtnl.c +++ b/rtnl.c @@ -160,6 +160,7 @@ int rtnl_open(void) } if (bind(fd, (struct sockaddr *) &sa, sizeof(sa))) { pr_err("failed to bind netlink socket: %m"); + close(fd); return -1; } return fd;