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. --- nscd/nscd_helper.c | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) (limited to 'nscd/nscd_helper.c') diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index 52a5caadfa..341b9311b2 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -166,24 +166,7 @@ open_socket (request_type type, const char *key, size_t keylen) { int sock; -#ifdef SOCK_CLOEXEC -# ifndef __ASSUME_SOCK_CLOEXEC - if (__have_sock_cloexec >= 0) -# endif - { - sock = __socket (PF_UNIX, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0); -# ifndef __ASSUME_SOCK_CLOEXEC - if (__have_sock_cloexec == 0) - __have_sock_cloexec = sock != -1 || errno != EINVAL ? 1 : -1; -# endif - } -#endif -#ifndef __ASSUME_SOCK_CLOEXEC -# ifdef SOCK_CLOEXEC - if (__have_sock_cloexec < 0) -# endif - sock = __socket (PF_UNIX, SOCK_STREAM, 0); -#endif + sock = __socket (PF_UNIX, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0); if (sock < 0) return -1; @@ -194,14 +177,6 @@ open_socket (request_type type, const char *key, size_t keylen) char key[]; } *reqdata = alloca (real_sizeof_reqdata); -#ifndef __ASSUME_SOCK_CLOEXEC -# ifdef SOCK_NONBLOCK - if (__have_sock_cloexec < 0) -# endif - /* Make socket non-blocking. */ - __fcntl (sock, F_SETFL, O_RDWR | O_NONBLOCK); -#endif - struct sockaddr_un sun; sun.sun_family = AF_UNIX; strcpy (sun.sun_path, _PATH_NSCDSOCKET); -- cgit v1.2.3