From ca0fc75580512ccb5931fe1e05092c6c52a4e99c Mon Sep 17 00:00:00 2001 From: Thomas Graf Date: Wed, 15 Jun 2011 17:37:28 +0200 Subject: socket: Set SOCK_CLOEXEC if available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported by Марк Коренберг --- lib/nl.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/nl.c b/lib/nl.c index f5f94e3..fc70374 100644 --- a/lib/nl.c +++ b/lib/nl.c @@ -101,14 +101,20 @@ * Creates a netlink socket using the specified protocol, binds the socket * and issues a connection attempt. * + * @note SOCK_CLOEXEC is set on the socket if available. + * * @return 0 on success or a negative error code. */ int nl_connect(struct nl_sock *sk, int protocol) { - int err; + int err, flags = 0; socklen_t addrlen; - sk->s_fd = socket(AF_NETLINK, SOCK_RAW, protocol); +#ifdef SOCK_CLOEXEC + flags |= SOCK_CLOEXEC; +#endif + + sk->s_fd = socket(AF_NETLINK, SOCK_RAW | flags, protocol); if (sk->s_fd < 0) { err = -nl_syserr2nlerr(errno); goto errout; -- cgit v1.2.1