about summary refs log tree commit diff
path: root/nis/nss_compat/compat-pwd.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-04-18 14:56:51 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-04-18 14:56:51 +0200
commitcef9b65376a044309f74b77860ccf3c48a4ae315 (patch)
treec934a9b57903468b9a2754c1cf8f99f2a94c9269 /nis/nss_compat/compat-pwd.c
parentb48061e1a534a2421c65e4258418d41a5335ba32 (diff)
downloadglibc-cef9b65376a044309f74b77860ccf3c48a4ae315.tar.gz
glibc-cef9b65376a044309f74b77860ccf3c48a4ae315.tar.xz
glibc-cef9b65376a044309f74b77860ccf3c48a4ae315.zip
Assume that O_CLOEXEC is always defined and works
Diffstat (limited to 'nis/nss_compat/compat-pwd.c')
-rw-r--r--nis/nss_compat/compat-pwd.c52
1 files changed, 2 insertions, 50 deletions
diff --git a/nis/nss_compat/compat-pwd.c b/nis/nss_compat/compat-pwd.c
index 28ae7fba84..0583a10b84 100644
--- a/nis/nss_compat/compat-pwd.c
+++ b/nis/nss_compat/compat-pwd.c
@@ -80,19 +80,6 @@ static ent_t ext_ent = { false, false, true, NSS_STATUS_SUCCESS, NULL,
 /* Protect global state against multiple changers.  */
 __libc_lock_define_initialized (static, lock)
 
-/* Positive if O_CLOEXEC is supported, negative if it is not supported,
-   zero if it is still undecided.  This variable is shared with the
-   other compat functions.  */
-#ifdef __ASSUME_O_CLOEXEC
-# define __compat_have_cloexec 1
-#else
-# ifdef O_CLOEXEC
-extern int __compat_have_cloexec;
-# else
-#  define __compat_have_cloexec -1
-# endif
-#endif
-
 /* Prototypes for local functions.  */
 static void blacklist_store_name (const char *, ent_t *);
 static int in_blacklist (const char *, int, ent_t *);
@@ -240,43 +227,8 @@ internal_setpwent (ent_t *ent, int stayopen, int needent)
       if (ent->stream == NULL)
 	status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
       else
-	{
-	  /* We have to make sure the file is  `closed on exec'.  */
-	  int result = 0;
-
-	  if (__compat_have_cloexec <= 0)
-	    {
-	      int flags;
-	      result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD,
-				      0);
-	      if (result >= 0)
-		{
-#if defined O_CLOEXEC && !defined __ASSUME_O_CLOEXEC
-		  if (__compat_have_cloexec == 0)
-		    __compat_have_cloexec = (flags & FD_CLOEXEC) ? 1 : -1;
-
-		  if (__compat_have_cloexec < 0)
-#endif
-		    {
-		      flags |= FD_CLOEXEC;
-		      result = fcntl (fileno_unlocked (ent->stream), F_SETFD,
-				      flags);
-		    }
-		}
-	    }
-
-	  if (result < 0)
-	    {
-	      /* Something went wrong.  Close the stream and return a
-	         failure.  */
-	      fclose (ent->stream);
-	      ent->stream = NULL;
-	      status = NSS_STATUS_UNAVAIL;
-	    }
-	  else
-	    /* We take care of locking ourself.  */
-	    __fsetlocking (ent->stream, FSETLOCKING_BYCALLER);
-	}
+	/* We take care of locking ourself.  */
+	__fsetlocking (ent->stream, FSETLOCKING_BYCALLER);
     }
   else
     rewind (ent->stream);