condense to just use O_CLOEXEC with open.
Index: usr.bin/passwd/local_passwd.c
===================================================================
RCS file: /cvs/src/usr.bin/passwd/local_passwd.c,v
retrieving revision 1.40
diff -N -u -p usr.bin/passwd/local_passwd.c
--- usr.bin/passwd/local_passwd.c 27 Oct 2009 23:59:41 -0000 1.40
+++ usr.bin/passwd/local_passwd.c 18 Jan 2013 04:42:20 -0000
@@ -130,8 +130,8 @@ local_passwd(char *uname, int authenticated)
}
if (i >= 4)
fputc('\n', stderr);
- pfd = open(_PATH_MASTERPASSWD, O_RDONLY, 0);
- if (pfd < 0 || fcntl(pfd, F_SETFD, FD_CLOEXEC) == -1)
+ pfd = open(_PATH_MASTERPASSWD, O_RDONLY | O_CLOEXEC, 0);
+ if (pfd < 0)
pw_error(_PATH_MASTERPASSWD, 1, 1);
/* Update master.passwd file and rebuild spwd.db. */