Module Name: src
Committed By: christos
Date: Sat Oct 15 23:00:02 UTC 2011
Modified Files:
src/lib/libc/citrus: citrus_mmap.c
src/lib/libc/gen: fstab.c fts.c getcap.c getgrent.c getttyent.c
getusershell.c initdir.c opendir.c syslog.c utmp.c utmpx.c
src/lib/libc/locale: localeio.c
src/lib/libc/net: getaddrinfo.c gethnamaddr.c getnetent.c
getprotoent_r.c getservent_r.c
src/lib/libc/resolv: res_init.c
src/lib/libc/rpc: getnetconfig.c getrpcent.c
src/lib/libc/sys: adjtime.c clock_settime.c ntp_adjtime.c
settimeofday.c
Log Message:
close on exec fixes:
- open + fcntl -> open O_CLOEXEC
- configuration database file descriptors that can stay open are now opened
fopen(db, "re")
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/citrus/citrus_mmap.c
cvs rdiff -u -r1.28 -r1.29 src/lib/libc/gen/fstab.c
cvs rdiff -u -r1.40 -r1.41 src/lib/libc/gen/fts.c
cvs rdiff -u -r1.49 -r1.50 src/lib/libc/gen/getcap.c
cvs rdiff -u -r1.63 -r1.64 src/lib/libc/gen/getgrent.c
cvs rdiff -u -r1.23 -r1.24 src/lib/libc/gen/getttyent.c
cvs rdiff -u -r1.27 -r1.28 src/lib/libc/gen/getusershell.c \
src/lib/libc/gen/utmpx.c
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/gen/initdir.c
cvs rdiff -u -r1.37 -r1.38 src/lib/libc/gen/opendir.c
cvs rdiff -u -r1.48 -r1.49 src/lib/libc/gen/syslog.c
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/gen/utmp.c
cvs rdiff -u -r1.5 -r1.6 src/lib/libc/locale/localeio.c
cvs rdiff -u -r1.95 -r1.96 src/lib/libc/net/getaddrinfo.c
cvs rdiff -u -r1.76 -r1.77 src/lib/libc/net/gethnamaddr.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libc/net/getnetent.c
cvs rdiff -u -r1.5 -r1.6 src/lib/libc/net/getprotoent_r.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/net/getservent_r.c
cvs rdiff -u -r1.22 -r1.23 src/lib/libc/resolv/res_init.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libc/rpc/getnetconfig.c
cvs rdiff -u -r1.21 -r1.22 src/lib/libc/rpc/getrpcent.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/sys/adjtime.c \
src/lib/libc/sys/clock_settime.c src/lib/libc/sys/ntp_adjtime.c
cvs rdiff -u -r1.13 -r1.14 src/lib/libc/sys/settimeofday.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/citrus/citrus_mmap.c
diff -u src/lib/libc/citrus/citrus_mmap.c:1.3 src/lib/libc/citrus/citrus_mmap.c:1.4
--- src/lib/libc/citrus/citrus_mmap.c:1.3 Tue Jan 18 19:52:37 2005
+++ src/lib/libc/citrus/citrus_mmap.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: citrus_mmap.c,v 1.3 2005/01/19 00:52:37 mycroft Exp $ */
+/* $NetBSD: citrus_mmap.c,v 1.4 2011/10/15 23:00:01 christos Exp $ */
/*-
* Copyright (c)2003 Citrus Project,
@@ -28,7 +28,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_mmap.c,v 1.3 2005/01/19 00:52:37 mycroft Exp $");
+__RCSID("$NetBSD: citrus_mmap.c,v 1.4 2011/10/15 23:00:01 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -58,12 +58,8 @@ _citrus_map_file(struct _citrus_region *
_region_init(r, NULL, 0);
- if ((fd = open(path, O_RDONLY)) == -1)
+ if ((fd = open(path, O_RDONLY | O_CLOEXEC)) == -1)
return errno;
- if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) {
- ret = errno;
- goto error;
- }
if (fstat(fd, &st) == -1) {
ret = errno;
Index: src/lib/libc/gen/fstab.c
diff -u src/lib/libc/gen/fstab.c:1.28 src/lib/libc/gen/fstab.c:1.29
--- src/lib/libc/gen/fstab.c:1.28 Sat Aug 12 19:49:54 2006
+++ src/lib/libc/gen/fstab.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: fstab.c,v 1.28 2006/08/12 23:49:54 christos Exp $ */
+/* $NetBSD: fstab.c,v 1.29 2011/10/15 23:00:01 christos Exp $ */
/*
* Copyright (c) 1980, 1988, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)fstab.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: fstab.c,v 1.28 2006/08/12 23:49:54 christos Exp $");
+__RCSID("$NetBSD: fstab.c,v 1.29 2011/10/15 23:00:01 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -216,7 +216,7 @@ setfsent(void)
rewind(_fs_fp);
return 1;
}
- if ((_fs_fp = fopen(_PATH_FSTAB, "r")) == NULL) {
+ if ((_fs_fp = fopen(_PATH_FSTAB, "re")) == NULL) {
warn("Cannot open `%s'", _PATH_FSTAB);
return 0;
}
Index: src/lib/libc/gen/fts.c
diff -u src/lib/libc/gen/fts.c:1.40 src/lib/libc/gen/fts.c:1.41
--- src/lib/libc/gen/fts.c:1.40 Mon Nov 2 12:17:34 2009
+++ src/lib/libc/gen/fts.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: fts.c,v 1.40 2009/11/02 17:17:34 stacktic Exp $ */
+/* $NetBSD: fts.c,v 1.41 2011/10/15 23:00:01 christos Exp $ */
/*-
* Copyright (c) 1990, 1993, 1994
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
#else
-__RCSID("$NetBSD: fts.c,v 1.40 2009/11/02 17:17:34 stacktic Exp $");
+__RCSID("$NetBSD: fts.c,v 1.41 2011/10/15 23:00:01 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -195,12 +195,8 @@ fts_open(char * const *argv, int options
* descriptor we run anyway, just more slowly.
*/
if (!ISSET(FTS_NOCHDIR)) {
- if ((sp->fts_rfd = open(".", O_RDONLY, 0)) == -1)
+ if ((sp->fts_rfd = open(".", O_RDONLY | O_CLOEXEC, 0)) == -1)
SET(FTS_NOCHDIR);
- else if (fcntl(sp->fts_rfd, F_SETFD, FD_CLOEXEC) == -1) {
- close(sp->fts_rfd);
- SET(FTS_NOCHDIR);
- }
}
if (nitems == 0)
@@ -352,13 +348,10 @@ fts_read(FTS *sp)
(p->fts_info == FTS_SL || p->fts_info == FTS_SLNONE)) {
p->fts_info = fts_stat(sp, p, 1);
if (p->fts_info == FTS_D && !ISSET(FTS_NOCHDIR)) {
- if ((p->fts_symfd = open(".", O_RDONLY, 0)) == -1) {
- p->fts_errno = errno;
- p->fts_info = FTS_ERR;
- } else if (fcntl(p->fts_symfd, F_SETFD, FD_CLOEXEC) == -1) {
+ if ((p->fts_symfd = open(".", O_RDONLY | O_CLOEXEC, 0))
+ == -1) {
p->fts_errno = errno;
p->fts_info = FTS_ERR;
- close(p->fts_symfd);
} else
p->fts_flags |= FTS_SYMFOLLOW;
}
@@ -446,13 +439,9 @@ next: tmp = p;
p->fts_info = fts_stat(sp, p, 1);
if (p->fts_info == FTS_D && !ISSET(FTS_NOCHDIR)) {
if ((p->fts_symfd =
- open(".", O_RDONLY, 0)) == -1) {
- p->fts_errno = errno;
- p->fts_info = FTS_ERR;
- } else if (fcntl(p->fts_symfd, F_SETFD, FD_CLOEXEC) == -1) {
+ open(".", O_RDONLY | O_CLOEXEC, 0)) == -1) {
p->fts_errno = errno;
p->fts_info = FTS_ERR;
- close(p->fts_symfd);
} else
p->fts_flags |= FTS_SYMFOLLOW;
}
Index: src/lib/libc/gen/getcap.c
diff -u src/lib/libc/gen/getcap.c:1.49 src/lib/libc/gen/getcap.c:1.50
--- src/lib/libc/gen/getcap.c:1.49 Mon Feb 7 16:39:47 2011
+++ src/lib/libc/gen/getcap.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getcap.c,v 1.49 2011/02/07 21:39:47 joerg Exp $ */
+/* $NetBSD: getcap.c,v 1.50 2011/10/15 23:00:01 christos Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -41,7 +41,7 @@
#if 0
static char sccsid[] = "@(#)getcap.c 8.3 (Berkeley) 3/25/94";
#else
-__RCSID("$NetBSD: getcap.c,v 1.49 2011/02/07 21:39:47 joerg Exp $");
+__RCSID("$NetBSD: getcap.c,v 1.50 2011/10/15 23:00:01 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -789,7 +789,7 @@ cgetnext(char **bp, const char * const *
if (dbp == NULL)
dbp = db_array;
- if (pfp == NULL && (pfp = fopen(*dbp, "r")) == NULL) {
+ if (pfp == NULL && (pfp = fopen(*dbp, "re")) == NULL) {
(void)cgetclose();
return -1;
}
@@ -812,7 +812,7 @@ cgetnext(char **bp, const char * const *
(void)cgetclose();
return 0;
} else if ((pfp =
- fopen(*dbp, "r")) == NULL) {
+ fopen(*dbp, "re")) == NULL) {
(void)cgetclose();
return -1;
} else
Index: src/lib/libc/gen/getgrent.c
diff -u src/lib/libc/gen/getgrent.c:1.63 src/lib/libc/gen/getgrent.c:1.64
--- src/lib/libc/gen/getgrent.c:1.63 Thu Jun 9 01:11:17 2011
+++ src/lib/libc/gen/getgrent.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getgrent.c,v 1.63 2011/06/09 05:11:17 sjg Exp $ */
+/* $NetBSD: getgrent.c,v 1.64 2011/10/15 23:00:01 christos Exp $ */
/*-
* Copyright (c) 1999-2000, 2004-2005 The NetBSD Foundation, Inc.
@@ -88,7 +88,7 @@
#if 0
static char sccsid[] = "@(#)getgrent.c 8.2 (Berkeley) 3/21/94";
#else
-__RCSID("$NetBSD: getgrent.c,v 1.63 2011/06/09 05:11:17 sjg Exp $");
+__RCSID("$NetBSD: getgrent.c,v 1.64 2011/10/15 23:00:01 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -304,7 +304,7 @@ __grstart_files(struct __grstate_files *
_DIAGASSERT(state != NULL);
if (state->fp == NULL) {
- state->fp = fopen(_PATH_GROUP, "r");
+ state->fp = fopen(_PATH_GROUP, "re");
if (state->fp == NULL)
return NS_UNAVAIL;
} else {
@@ -1265,7 +1265,7 @@ __grstart_compat(struct __grstate_compat
_DIAGASSERT(state != NULL);
if (state->fp == NULL) {
- state->fp = fopen(_PATH_GROUP, "r");
+ state->fp = fopen(_PATH_GROUP, "re");
if (state->fp == NULL)
return NS_UNAVAIL;
} else {
Index: src/lib/libc/gen/getttyent.c
diff -u src/lib/libc/gen/getttyent.c:1.23 src/lib/libc/gen/getttyent.c:1.24
--- src/lib/libc/gen/getttyent.c:1.23 Mon Apr 17 19:29:21 2006
+++ src/lib/libc/gen/getttyent.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getttyent.c,v 1.23 2006/04/17 23:29:21 salo Exp $ */
+/* $NetBSD: getttyent.c,v 1.24 2011/10/15 23:00:01 christos Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)getttyent.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: getttyent.c,v 1.23 2006/04/17 23:29:21 salo Exp $");
+__RCSID("$NetBSD: getttyent.c,v 1.24 2011/10/15 23:00:01 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -223,7 +223,7 @@ setttyentpath(const char *path)
if (tf) {
rewind(tf);
return 1;
- } else if ((tf = fopen(path, "r")) != NULL)
+ } else if ((tf = fopen(path, "re")) != NULL)
return 1;
return 0;
}
Index: src/lib/libc/gen/getusershell.c
diff -u src/lib/libc/gen/getusershell.c:1.27 src/lib/libc/gen/getusershell.c:1.28
--- src/lib/libc/gen/getusershell.c:1.27 Mon Apr 28 16:22:59 2008
+++ src/lib/libc/gen/getusershell.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getusershell.c,v 1.27 2008/04/28 20:22:59 martin Exp $ */
+/* $NetBSD: getusershell.c,v 1.28 2011/10/15 23:00:01 christos Exp $ */
/*-
* Copyright (c) 1999, 2005 The NetBSD Foundation, Inc.
@@ -63,7 +63,7 @@
#if 0
static char sccsid[] = "@(#)getusershell.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: getusershell.c,v 1.27 2008/04/28 20:22:59 martin Exp $");
+__RCSID("$NetBSD: getusershell.c,v 1.28 2011/10/15 23:00:01 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -133,7 +133,7 @@ _files_start(struct files_state *state)
_DIAGASSERT(state != NULL);
if (state->fp == NULL) {
- state->fp = fopen(_PATH_SHELLS, "r");
+ state->fp = fopen(_PATH_SHELLS, "re");
if (state->fp == NULL)
return NS_UNAVAIL;
} else {
Index: src/lib/libc/gen/utmpx.c
diff -u src/lib/libc/gen/utmpx.c:1.27 src/lib/libc/gen/utmpx.c:1.28
--- src/lib/libc/gen/utmpx.c:1.27 Fri Sep 16 21:52:29 2011
+++ src/lib/libc/gen/utmpx.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: utmpx.c,v 1.27 2011/09/17 01:52:29 christos Exp $ */
+/* $NetBSD: utmpx.c,v 1.28 2011/10/15 23:00:02 christos Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: utmpx.c,v 1.27 2011/09/17 01:52:29 christos Exp $");
+__RCSID("$NetBSD: utmpx.c,v 1.28 2011/10/15 23:00:02 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -120,7 +120,7 @@ getutxent()
if (fp == NULL) {
struct stat st;
- if ((fp = fopen(utfile, "r+")) == NULL)
+ if ((fp = fopen(utfile, "re+")) == NULL)
if ((fp = fopen(utfile, "w+")) == NULL) {
if ((fp = fopen(utfile, "r")) == NULL)
goto fail;
Index: src/lib/libc/gen/initdir.c
diff -u src/lib/libc/gen/initdir.c:1.1 src/lib/libc/gen/initdir.c:1.2
--- src/lib/libc/gen/initdir.c:1.1 Sat Sep 25 22:26:59 2010
+++ src/lib/libc/gen/initdir.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: initdir.c,v 1.1 2010/09/26 02:26:59 yamt Exp $ */
+/* $NetBSD: initdir.c,v 1.2 2011/10/15 23:00:01 christos Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: initdir.c,v 1.1 2010/09/26 02:26:59 yamt Exp $");
+__RCSID("$NetBSD: initdir.c,v 1.2 2011/10/15 23:00:01 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -153,8 +153,7 @@ retry:
*/
if (flags & DTF_REWIND) {
(void) close(fd);
- if ((fd = open(name, O_RDONLY)) == -1 ||
- fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) {
+ if ((fd = open(name, O_RDONLY | O_CLOEXEC)) == -1) {
dirp->dd_buf = buf;
return errno;
}
Index: src/lib/libc/gen/opendir.c
diff -u src/lib/libc/gen/opendir.c:1.37 src/lib/libc/gen/opendir.c:1.38
--- src/lib/libc/gen/opendir.c:1.37 Sat Sep 25 22:26:59 2010
+++ src/lib/libc/gen/opendir.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: opendir.c,v 1.37 2010/09/26 02:26:59 yamt Exp $ */
+/* $NetBSD: opendir.c,v 1.38 2011/10/15 23:00:01 christos Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)opendir.c 8.7 (Berkeley) 12/10/94";
#else
-__RCSID("$NetBSD: opendir.c,v 1.37 2010/09/26 02:26:59 yamt Exp $");
+__RCSID("$NetBSD: opendir.c,v 1.38 2011/10/15 23:00:01 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -77,7 +77,7 @@ __opendir2(const char *name, int flags)
{
int fd;
- if ((fd = open(name, O_RDONLY | O_NONBLOCK)) == -1)
+ if ((fd = open(name, O_RDONLY | O_NONBLOCK | O_CLOEXEC)) == -1)
return NULL;
return __opendir_common(fd, name, flags);
}
@@ -86,6 +86,8 @@ __opendir2(const char *name, int flags)
DIR *
_fdopendir(int fd)
{
+ if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
+ return NULL;
return __opendir_common(fd, NULL, DTF_HIDEW|DTF_NODUP);
}
@@ -100,13 +102,11 @@ __opendir_common(int fd, const char *nam
struct statvfs sfb;
int error;
- if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
- goto error;
if (fstat(fd, &sb) || !S_ISDIR(sb.st_mode)) {
errno = ENOTDIR;
goto error;
}
- if ((dirp = (DIR *)malloc(sizeof(DIR))) == NULL)
+ if ((dirp = malloc(sizeof(*dirp))) == NULL)
goto error;
dirp->dd_buf = NULL;
dirp->dd_internal = NULL;
Index: src/lib/libc/gen/syslog.c
diff -u src/lib/libc/gen/syslog.c:1.48 src/lib/libc/gen/syslog.c:1.49
--- src/lib/libc/gen/syslog.c:1.48 Thu May 13 18:40:14 2010
+++ src/lib/libc/gen/syslog.c Sat Oct 15 19:00:01 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: syslog.c,v 1.48 2010/05/13 22:40:14 christos Exp $ */
+/* $NetBSD: syslog.c,v 1.49 2011/10/15 23:00:01 christos Exp $ */
/*
* Copyright (c) 1983, 1988, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)syslog.c 8.5 (Berkeley) 4/29/95";
#else
-__RCSID("$NetBSD: syslog.c,v 1.48 2010/05/13 22:40:14 christos Exp $");
+__RCSID("$NetBSD: syslog.c,v 1.49 2011/10/15 23:00:01 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -497,9 +497,9 @@ connectlog_r(struct syslog_data *data)
};
if (data->log_file == -1 || fcntl(data->log_file, F_GETFL, 0) == -1) {
- if ((data->log_file = socket(AF_UNIX, SOCK_DGRAM, 0)) == -1)
+ if ((data->log_file = socket(AF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC,
+ 0)) == -1)
return;
- (void)fcntl(data->log_file, F_SETFD, FD_CLOEXEC);
data->connected = 0;
}
if (!data->connected) {
Index: src/lib/libc/gen/utmp.c
diff -u src/lib/libc/gen/utmp.c:1.9 src/lib/libc/gen/utmp.c:1.10
--- src/lib/libc/gen/utmp.c:1.9 Thu Feb 5 18:52:55 2009
+++ src/lib/libc/gen/utmp.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: utmp.c,v 1.9 2009/02/05 23:52:55 lukem Exp $ */
+/* $NetBSD: utmp.c,v 1.10 2011/10/15 23:00:02 christos Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: utmp.c,v 1.9 2009/02/05 23:52:55 lukem Exp $");
+__RCSID("$NetBSD: utmp.c,v 1.10 2011/10/15 23:00:02 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -61,7 +61,7 @@ getutent(void)
if (ut == NULL) {
struct stat st;
off_t numentries;
- if ((ut = fopen(utfile, "r")) == NULL)
+ if ((ut = fopen(utfile, "re")) == NULL)
return NULL;
if (fstat(fileno(ut), &st) == -1)
goto out;
Index: src/lib/libc/locale/localeio.c
diff -u src/lib/libc/locale/localeio.c:1.5 src/lib/libc/locale/localeio.c:1.6
--- src/lib/libc/locale/localeio.c:1.5 Sat Jun 19 09:26:52 2010
+++ src/lib/libc/locale/localeio.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: localeio.c,v 1.5 2010/06/19 13:26:52 tnozaki Exp $ */
+/* $NetBSD: localeio.c,v 1.6 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 2008, The NetBSD Foundation, Inc.
* All rights reserved.
@@ -30,7 +30,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: localeio.c,v 1.5 2010/06/19 13:26:52 tnozaki Exp $");
+__RCSID("$NetBSD: localeio.c,v 1.6 2011/10/15 23:00:02 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -64,10 +64,10 @@ _localeio_map_file(const char * __restri
_DIAGASSERT(pvar != NULL);
_DIAGASSERT(plenvar != NULL);
- fd = open(path, O_RDONLY);
+ fd = open(path, O_RDONLY | O_CLOEXEC);
if (fd == -1)
return errno;
- if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1 || fstat(fd, &st) == 1) {
+ if (fstat(fd, &st) == -1) {
ret = errno;
goto error;
}
Index: src/lib/libc/net/getaddrinfo.c
diff -u src/lib/libc/net/getaddrinfo.c:1.95 src/lib/libc/net/getaddrinfo.c:1.96
--- src/lib/libc/net/getaddrinfo.c:1.95 Fri Oct 2 03:41:08 2009
+++ src/lib/libc/net/getaddrinfo.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getaddrinfo.c,v 1.95 2009/10/02 07:41:08 wiz Exp $ */
+/* $NetBSD: getaddrinfo.c,v 1.96 2011/10/15 23:00:02 christos Exp $ */
/* $KAME: getaddrinfo.c,v 1.29 2000/08/31 17:26:57 itojun Exp $ */
/*
@@ -55,7 +55,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: getaddrinfo.c,v 1.95 2009/10/02 07:41:08 wiz Exp $");
+__RCSID("$NetBSD: getaddrinfo.c,v 1.96 2011/10/15 23:00:02 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -1406,7 +1406,7 @@ _sethtent(FILE **hostf)
{
if (!*hostf)
- *hostf = fopen(_PATH_HOSTS, "r" );
+ *hostf = fopen(_PATH_HOSTS, "re");
else
rewind(*hostf);
}
@@ -1434,7 +1434,7 @@ _gethtent(FILE **hostf, const char *name
_DIAGASSERT(name != NULL);
_DIAGASSERT(pai != NULL);
- if (!*hostf && !(*hostf = fopen(_PATH_HOSTS, "r" )))
+ if (!*hostf && !(*hostf = fopen(_PATH_HOSTS, "re")))
return (NULL);
again:
if (!(p = fgets(hostbuf, sizeof hostbuf, *hostf)))
Index: src/lib/libc/net/gethnamaddr.c
diff -u src/lib/libc/net/gethnamaddr.c:1.76 src/lib/libc/net/gethnamaddr.c:1.77
--- src/lib/libc/net/gethnamaddr.c:1.76 Sun Aug 29 11:40:35 2010
+++ src/lib/libc/net/gethnamaddr.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: gethnamaddr.c,v 1.76 2010/08/29 15:40:35 christos Exp $ */
+/* $NetBSD: gethnamaddr.c,v 1.77 2011/10/15 23:00:02 christos Exp $ */
/*
* ++Copyright++ 1985, 1988, 1993
@@ -57,7 +57,7 @@
static char sccsid[] = "@(#)gethostnamadr.c 8.1 (Berkeley) 6/4/93";
static char rcsid[] = "Id: gethnamaddr.c,v 8.21 1997/06/01 20:34:37 vixie Exp ";
#else
-__RCSID("$NetBSD: gethnamaddr.c,v 1.76 2010/08/29 15:40:35 christos Exp $");
+__RCSID("$NetBSD: gethnamaddr.c,v 1.77 2011/10/15 23:00:02 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -720,7 +720,7 @@ void
_sethtent(int f)
{
if (!hostf)
- hostf = fopen(_PATH_HOSTS, "r" );
+ hostf = fopen(_PATH_HOSTS, "re");
else
rewind(hostf);
stayopen = f;
@@ -742,7 +742,7 @@ _gethtent(void)
char *cp, **q;
int af, len;
- if (!hostf && !(hostf = fopen(_PATH_HOSTS, "r" ))) {
+ if (!hostf && !(hostf = fopen(_PATH_HOSTS, "re"))) {
h_errno = NETDB_INTERNAL;
return NULL;
}
Index: src/lib/libc/net/getnetent.c
diff -u src/lib/libc/net/getnetent.c:1.18 src/lib/libc/net/getnetent.c:1.19
--- src/lib/libc/net/getnetent.c:1.18 Sat Jan 27 17:27:35 2007
+++ src/lib/libc/net/getnetent.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getnetent.c,v 1.18 2007/01/27 22:27:35 christos Exp $ */
+/* $NetBSD: getnetent.c,v 1.19 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -44,7 +44,7 @@
static char sccsid[] = "@(#)getnetent.c 8.1 (Berkeley) 6/4/93";
static char rcsid[] = "Id: getnetent.c,v 8.4 1997/06/01 20:34:37 vixie Exp ";
#else
-__RCSID("$NetBSD: getnetent.c,v 1.18 2007/01/27 22:27:35 christos Exp $");
+__RCSID("$NetBSD: getnetent.c,v 1.19 2011/10/15 23:00:02 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -97,7 +97,7 @@ __setnetent(f)
{
if (netf == NULL)
- netf = fopen(_PATH_NETWORKS, "r" );
+ netf = fopen(_PATH_NETWORKS, "re");
else
rewind(netf);
_net_stayopen |= f;
@@ -120,7 +120,7 @@ getnetent()
char *p;
register char *cp, **q;
- if (netf == NULL && (netf = fopen(_PATH_NETWORKS, "r" )) == NULL)
+ if (netf == NULL && (netf = fopen(_PATH_NETWORKS, "re")) == NULL)
return (NULL);
#if (defined(__sparc__) && defined(_LP64)) || \
defined(__alpha__) || \
Index: src/lib/libc/net/getprotoent_r.c
diff -u src/lib/libc/net/getprotoent_r.c:1.5 src/lib/libc/net/getprotoent_r.c:1.6
--- src/lib/libc/net/getprotoent_r.c:1.5 Mon Apr 18 15:39:45 2005
+++ src/lib/libc/net/getprotoent_r.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getprotoent_r.c,v 1.5 2005/04/18 19:39:45 kleink Exp $ */
+/* $NetBSD: getprotoent_r.c,v 1.6 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)getprotoent.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: getprotoent_r.c,v 1.5 2005/04/18 19:39:45 kleink Exp $");
+__RCSID("$NetBSD: getprotoent_r.c,v 1.6 2011/10/15 23:00:02 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -57,7 +57,7 @@ void
setprotoent_r(int f, struct protoent_data *pd)
{
if (pd->fp == NULL)
- pd->fp = fopen(_PATH_PROTOCOLS, "r");
+ pd->fp = fopen(_PATH_PROTOCOLS, "re");
else
rewind(pd->fp);
pd->stayopen |= f;
@@ -89,7 +89,7 @@ getprotoent_r(struct protoent *pr, struc
size_t i = 0;
int oerrno;
- if (pd->fp == NULL && (pd->fp = fopen(_PATH_PROTOCOLS, "r")) == NULL)
+ if (pd->fp == NULL && (pd->fp = fopen(_PATH_PROTOCOLS, "re")) == NULL)
return NULL;
for (;;) {
Index: src/lib/libc/net/getservent_r.c
diff -u src/lib/libc/net/getservent_r.c:1.10 src/lib/libc/net/getservent_r.c:1.11
--- src/lib/libc/net/getservent_r.c:1.10 Sat Apr 24 20:54:46 2010
+++ src/lib/libc/net/getservent_r.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getservent_r.c,v 1.10 2010/04/25 00:54:46 joerg Exp $ */
+/* $NetBSD: getservent_r.c,v 1.11 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)getservent.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: getservent_r.c,v 1.10 2010/04/25 00:54:46 joerg Exp $");
+__RCSID("$NetBSD: getservent_r.c,v 1.11 2011/10/15 23:00:02 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -79,7 +79,7 @@ _servent_open(struct servent_data *sd)
return 0;
}
- sd->plainfile = fopen(_PATH_SERVICES, "r");
+ sd->plainfile = fopen(_PATH_SERVICES, "re");
if (sd->plainfile != NULL) {
sd->flags |= _SV_PLAINFILE;
return 0;
Index: src/lib/libc/resolv/res_init.c
diff -u src/lib/libc/resolv/res_init.c:1.22 src/lib/libc/resolv/res_init.c:1.23
--- src/lib/libc/resolv/res_init.c:1.22 Sat Oct 24 13:24:01 2009
+++ src/lib/libc/resolv/res_init.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: res_init.c,v 1.22 2009/10/24 17:24:01 christos Exp $ */
+/* $NetBSD: res_init.c,v 1.23 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 1985, 1989, 1993
@@ -76,7 +76,7 @@
static const char sccsid[] = "@(#)res_init.c 8.1 (Berkeley) 6/7/93";
static const char rcsid[] = "Id: res_init.c,v 1.26 2008/12/11 09:59:00 marka Exp";
#else
-__RCSID("$NetBSD: res_init.c,v 1.22 2009/10/24 17:24:01 christos Exp $");
+__RCSID("$NetBSD: res_init.c,v 1.23 2011/10/15 23:00:02 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -346,7 +346,7 @@ __res_vinit(res_state statp, int preinit
line[sizeof(name) - 1] == '\t'))
nserv = 0;
- if ((fp = fopen(_PATH_RESCONF, "r")) != NULL) {
+ if ((fp = fopen(_PATH_RESCONF, "re")) != NULL) {
struct stat st;
struct kevent kc;
@@ -502,9 +502,7 @@ __res_vinit(res_state statp, int preinit
if (fstat(statp->_u._ext.ext->resfd, &st) != -1)
__res_conf_time = statp->_u._ext.ext->res_conf_time =
st.st_mtimespec;
- statp->_u._ext.ext->kq = kqueue();
- (void)fcntl(statp->_u._ext.ext->kq, F_SETFD, FD_CLOEXEC);
- (void)fcntl(statp->_u._ext.ext->resfd, F_SETFD, FD_CLOEXEC);
+ statp->_u._ext.ext->kq = kqueue1(O_CLOEXEC);
EV_SET(&kc, statp->_u._ext.ext->resfd, EVFILT_VNODE,
EV_ADD|EV_ENABLE|EV_CLEAR, NOTE_DELETE|NOTE_WRITE| NOTE_EXTEND|
NOTE_ATTRIB|NOTE_LINK|NOTE_RENAME|NOTE_REVOKE, 0, 0);
Index: src/lib/libc/rpc/getnetconfig.c
diff -u src/lib/libc/rpc/getnetconfig.c:1.18 src/lib/libc/rpc/getnetconfig.c:1.19
--- src/lib/libc/rpc/getnetconfig.c:1.18 Tue Dec 7 21:06:38 2010
+++ src/lib/libc/rpc/getnetconfig.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getnetconfig.c,v 1.18 2010/12/08 02:06:38 joerg Exp $ */
+/* $NetBSD: getnetconfig.c,v 1.19 2011/10/15 23:00:02 christos Exp $ */
/*
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -35,7 +35,7 @@
#if 0
static char sccsid[] = "@(#)getnetconfig.c 1.12 91/12/19 SMI";
#else
-__RCSID("$NetBSD: getnetconfig.c,v 1.18 2010/12/08 02:06:38 joerg Exp $");
+__RCSID("$NetBSD: getnetconfig.c,v 1.19 2011/10/15 23:00:02 christos Exp $");
#endif
#endif
@@ -220,7 +220,7 @@ setnetconfig()
* handle without reopening the netconfig db.
*/
ni.ref++;
- if ((nc_file != NULL) || (nc_file = fopen(NETCONFIG, "r")) != NULL) {
+ if ((nc_file != NULL) || (nc_file = fopen(NETCONFIG, "re")) != NULL) {
nc_vars->valid = NC_VALID;
nc_vars->flag = 0;
nc_vars->nc_configs = ni.head;
Index: src/lib/libc/rpc/getrpcent.c
diff -u src/lib/libc/rpc/getrpcent.c:1.21 src/lib/libc/rpc/getrpcent.c:1.22
--- src/lib/libc/rpc/getrpcent.c:1.21 Sun Aug 15 22:47:54 2004
+++ src/lib/libc/rpc/getrpcent.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: getrpcent.c,v 1.21 2004/08/16 02:47:54 ginsbach Exp $ */
+/* $NetBSD: getrpcent.c,v 1.22 2011/10/15 23:00:02 christos Exp $ */
/*
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -35,7 +35,7 @@
#if 0
static char *sccsid = "@(#)getrpcent.c 1.14 91/03/11 Copyr 1984 Sun Micro";
#else
-__RCSID("$NetBSD: getrpcent.c,v 1.21 2004/08/16 02:47:54 ginsbach Exp $");
+__RCSID("$NetBSD: getrpcent.c,v 1.22 2011/10/15 23:00:02 christos Exp $");
#endif
#endif
@@ -140,7 +140,7 @@ setrpcent(int f)
if (d == 0)
return;
if (d->rpcf == NULL)
- d->rpcf = fopen(RPCDB, "r");
+ d->rpcf = fopen(RPCDB, "re");
else
rewind(d->rpcf);
d->stayopen |= f;
@@ -166,7 +166,7 @@ getrpcent(void)
if (d == 0)
return(NULL);
- if (d->rpcf == NULL && (d->rpcf = fopen(RPCDB, "r")) == NULL)
+ if (d->rpcf == NULL && (d->rpcf = fopen(RPCDB, "re")) == NULL)
return (NULL);
if (fgets(d->line, BUFSIZ, d->rpcf) == NULL)
return (NULL);
Index: src/lib/libc/sys/adjtime.c
diff -u src/lib/libc/sys/adjtime.c:1.11 src/lib/libc/sys/adjtime.c:1.12
--- src/lib/libc/sys/adjtime.c:1.11 Sat Jan 10 21:46:30 2009
+++ src/lib/libc/sys/adjtime.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: adjtime.c,v 1.11 2009/01/11 02:46:30 christos Exp $ */
+/* $NetBSD: adjtime.c,v 1.12 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: adjtime.c,v 1.11 2009/01/11 02:46:30 christos Exp $");
+__RCSID("$NetBSD: adjtime.c,v 1.12 2011/10/15 23:00:02 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -76,14 +76,12 @@ adjtime(const struct timeval *delta, str
* If this fails, it means that we are not root
* and we cannot open clockctl. This is a failure.
*/
- __clockctl_fd = open(_PATH_CLOCKCTL, O_WRONLY, 0);
+ __clockctl_fd = open(_PATH_CLOCKCTL, O_WRONLY | O_CLOEXEC, 0);
if (__clockctl_fd == -1) {
/* original error was EPERM - don't leak open errors */
errno = EPERM;
return -1;
}
-
- (void) fcntl(__clockctl_fd, F_SETFD, FD_CLOEXEC);
}
/*
Index: src/lib/libc/sys/clock_settime.c
diff -u src/lib/libc/sys/clock_settime.c:1.11 src/lib/libc/sys/clock_settime.c:1.12
--- src/lib/libc/sys/clock_settime.c:1.11 Sat Jan 10 21:46:30 2009
+++ src/lib/libc/sys/clock_settime.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: clock_settime.c,v 1.11 2009/01/11 02:46:30 christos Exp $ */
+/* $NetBSD: clock_settime.c,v 1.12 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: clock_settime.c,v 1.11 2009/01/11 02:46:30 christos Exp $");
+__RCSID("$NetBSD: clock_settime.c,v 1.12 2011/10/15 23:00:02 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -78,14 +78,12 @@ clock_settime(clockid_t clock_id, const
* If this fails, it means that we are not root
* and we cannot open clockctl. This is a failure.
*/
- __clockctl_fd = open(_PATH_CLOCKCTL, O_WRONLY, 0);
+ __clockctl_fd = open(_PATH_CLOCKCTL, O_WRONLY | O_CLOEXEC, 0);
if (__clockctl_fd == -1) {
/* original error was EPERM - don't leak open errors */
errno = EPERM;
return -1;
}
-
- (void) fcntl(__clockctl_fd, F_SETFD, FD_CLOEXEC);
}
/*
Index: src/lib/libc/sys/ntp_adjtime.c
diff -u src/lib/libc/sys/ntp_adjtime.c:1.11 src/lib/libc/sys/ntp_adjtime.c:1.12
--- src/lib/libc/sys/ntp_adjtime.c:1.11 Fri Nov 23 07:39:15 2007
+++ src/lib/libc/sys/ntp_adjtime.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: ntp_adjtime.c,v 1.11 2007/11/23 12:39:15 uebayasi Exp $ */
+/* $NetBSD: ntp_adjtime.c,v 1.12 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: ntp_adjtime.c,v 1.11 2007/11/23 12:39:15 uebayasi Exp $");
+__RCSID("$NetBSD: ntp_adjtime.c,v 1.12 2011/10/15 23:00:02 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -87,14 +87,12 @@ ntp_adjtime(tp)
* and we cannot open clockctl. This is a true
* failure.
*/
- __clockctl_fd = open(_PATH_CLOCKCTL, O_WRONLY, 0);
+ __clockctl_fd = open(_PATH_CLOCKCTL, O_WRONLY | O_CLOEXEC, 0);
if (__clockctl_fd == -1) {
/* original error was EPERM - don't leak open errors */
errno = EPERM;
return -1;
}
-
- (void) fcntl(__clockctl_fd, F_SETFD, FD_CLOEXEC);
}
/*
Index: src/lib/libc/sys/settimeofday.c
diff -u src/lib/libc/sys/settimeofday.c:1.13 src/lib/libc/sys/settimeofday.c:1.14
--- src/lib/libc/sys/settimeofday.c:1.13 Sat Jan 10 21:46:30 2009
+++ src/lib/libc/sys/settimeofday.c Sat Oct 15 19:00:02 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: settimeofday.c,v 1.13 2009/01/11 02:46:30 christos Exp $ */
+/* $NetBSD: settimeofday.c,v 1.14 2011/10/15 23:00:02 christos Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: settimeofday.c,v 1.13 2009/01/11 02:46:30 christos Exp $");
+__RCSID("$NetBSD: settimeofday.c,v 1.14 2011/10/15 23:00:02 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -77,14 +77,12 @@ settimeofday(const struct timeval *tv, c
if (rv != -1 || errno != EPERM)
return rv;
- __clockctl_fd = open(_PATH_CLOCKCTL, O_WRONLY, 0);
+ __clockctl_fd = open(_PATH_CLOCKCTL, O_WRONLY | O_CLOEXEC, 0);
if (__clockctl_fd == -1) {
/* original error was EPERM - don't leak open errors */
errno = EPERM;
return -1;
}
-
- (void) fcntl(__clockctl_fd, F_SETFD, FD_CLOEXEC);
}
/*