Fix leaks of sockets on errors.

Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
master
Miroslav Lichvar 2017-02-06 15:51:10 +01:00 committed by Richard Cochran
parent 73318c5b99
commit 8deb52a849
2 changed files with 3 additions and 0 deletions

View File

@ -830,11 +830,13 @@ static int clock_add_port(struct clock *c, int phc_index,
} }
index = sk_interface_index(fd, iface->name); index = sk_interface_index(fd, iface->name);
if (index < 0) { if (index < 0) {
close(fd);
return -1; return -1;
} }
snprintf(key, sizeof(key), "%d", index); snprintf(key, sizeof(key), "%d", index);
if (hash_insert(c->index2port, key, p)) { if (hash_insert(c->index2port, key, p)) {
pr_err("failed to add port with index %d twice!", index); pr_err("failed to add port with index %d twice!", index);
close(fd);
return -1; return -1;
} }
close(fd); close(fd);

1
rtnl.c
View File

@ -160,6 +160,7 @@ int rtnl_open(void)
} }
if (bind(fd, (struct sockaddr *) &sa, sizeof(sa))) { if (bind(fd, (struct sockaddr *) &sa, sizeof(sa))) {
pr_err("failed to bind netlink socket: %m"); pr_err("failed to bind netlink socket: %m");
close(fd);
return -1; return -1;
} }
return fd; return fd;