From 52fb79d6cdecb89a6f0375091e7c12ed79ae6760 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Sat, 17 Oct 2015 12:02:37 +0200 Subject: Assume that SOCK_CLOEXEC is available and works This fixes (harmless) data races when accessing the various __have_sock_cloexec variables. --- nis/ypclnt.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) (limited to 'nis') diff --git a/nis/ypclnt.c b/nis/ypclnt.c index 3a73872..93a95d6 100644 --- a/nis/ypclnt.c +++ b/nis/ypclnt.c @@ -68,25 +68,11 @@ yp_bind_client_create (const char *domain, dom_binding *ysd, ysd->dom_domain[YPMAXDOMAIN] = '\0'; ysd->dom_socket = RPC_ANYSOCK; -#ifdef SOCK_CLOEXEC -# define xflags SOCK_CLOEXEC -#else -# define xflags 0 -#endif ysd->dom_client = __libc_clntudp_bufcreate (&ysd->dom_server_addr, YPPROG, YPVERS, UDPTIMEOUT, &ysd->dom_socket, UDPMSGSIZE, UDPMSGSIZE, - xflags); - - if (ysd->dom_client != NULL) - { -#ifndef SOCK_CLOEXEC - /* If the program exits, close the socket */ - if (fcntl (ysd->dom_socket, F_SETFD, FD_CLOEXEC) == -1) - perror ("fcntl: F_SETFD"); -#endif - } + SOCK_CLOEXEC); } #if USE_BINDINGDIR -- cgit v1.1