BUG/MINOR: namespace: avoid closing fd when socket failed in my_socketat

we cannot return right after socket opening as we need to move back to
the default namespace first

this should fix github issue #500

this might be backported to all version >= 1.6

Fixes: b3e54fe387 ("MAJOR: namespace: add Linux network namespace
support")
Signed-off-by: William Dauchy <w.dauchy@criteo.com>
This commit is contained in:
William Dauchy 2020-02-12 21:23:20 +01:00 committed by Willy Tarreau
parent 332ded5f3a
commit f7dcdc8a6f

View File

@ -121,7 +121,8 @@ int my_socketat(const struct netns_entry *ns, int domain, int type, int protocol
sock = socket(domain, type, protocol);
if (default_namespace >= 0 && ns && setns(default_namespace, CLONE_NEWNET) == -1) {
close(sock);
if (sock >= 0)
close(sock);
return -1;
}
return sock;