Module Name: src Committed By: christos Date: Thu Sep 18 13:58:21 UTC 2014
Modified Files: src/lib/libc/gen: fmtmsg.c fts.c getcap.c getpass.c nlist.c syslog.c utmpx.c src/lib/libc/gmon: gmon.c src/lib/libc/hash: hashhl.c src/lib/libc/md: mdXhl.c src/lib/libc/net: ethers.c hesiod.c nsdispatch.c rcmd.c src/lib/libc/rpc: getnetconfig.c src/lib/libc/stdlib: malloc.c src/lib/libc/time: getdate.c localtime.c strftime.c src/lib/libc/yp: yplib.c Log Message: make more descriptors that we open as close-on-exec To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/lib/libc/gen/fmtmsg.c cvs rdiff -u -r1.46 -r1.47 src/lib/libc/gen/fts.c cvs rdiff -u -r1.53 -r1.54 src/lib/libc/gen/getcap.c \ src/lib/libc/gen/syslog.c cvs rdiff -u -r1.28 -r1.29 src/lib/libc/gen/getpass.c cvs rdiff -u -r1.24 -r1.25 src/lib/libc/gen/nlist.c cvs rdiff -u -r1.31 -r1.32 src/lib/libc/gen/utmpx.c cvs rdiff -u -r1.34 -r1.35 src/lib/libc/gmon/gmon.c cvs rdiff -u -r1.4 -r1.5 src/lib/libc/hash/hashhl.c cvs rdiff -u -r1.10 -r1.11 src/lib/libc/md/mdXhl.c cvs rdiff -u -r1.24 -r1.25 src/lib/libc/net/ethers.c cvs rdiff -u -r1.27 -r1.28 src/lib/libc/net/hesiod.c cvs rdiff -u -r1.37 -r1.38 src/lib/libc/net/nsdispatch.c cvs rdiff -u -r1.69 -r1.70 src/lib/libc/net/rcmd.c cvs rdiff -u -r1.21 -r1.22 src/lib/libc/rpc/getnetconfig.c cvs rdiff -u -r1.55 -r1.56 src/lib/libc/stdlib/malloc.c cvs rdiff -u -r1.2 -r1.3 src/lib/libc/time/getdate.c cvs rdiff -u -r1.85 -r1.86 src/lib/libc/time/localtime.c cvs rdiff -u -r1.31 -r1.32 src/lib/libc/time/strftime.c cvs rdiff -u -r1.45 -r1.46 src/lib/libc/yp/yplib.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/gen/fmtmsg.c diff -u src/lib/libc/gen/fmtmsg.c:1.5 src/lib/libc/gen/fmtmsg.c:1.6 --- src/lib/libc/gen/fmtmsg.c:1.5 Tue Mar 20 12:36:05 2012 +++ src/lib/libc/gen/fmtmsg.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: fmtmsg.c,v 1.5 2012/03/20 16:36:05 matt Exp $ */ +/* $NetBSD: fmtmsg.c,v 1.6 2014/09/18 13:58:20 christos Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: fmtmsg.c,v 1.5 2012/03/20 16:36:05 matt Exp $"); +__RCSID("$NetBSD: fmtmsg.c,v 1.6 2014/09/18 13:58:20 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include <fmtmsg.h> @@ -213,7 +213,7 @@ fmtmsg(long classification, const char * } /* Similar to MM_PRINT but ignoring $MSGVERB. */ if (classification & MM_CONSOLE) { - if ((console = fopen(_PATH_CONSOLE, "w")) != NULL) { + if ((console = fopen(_PATH_CONSOLE, "we")) != NULL) { if (writeit(console, MM_VERBALL, label, sevstr, text, action, tag) < 0) result |= MM_NOCON; Index: src/lib/libc/gen/fts.c diff -u src/lib/libc/gen/fts.c:1.46 src/lib/libc/gen/fts.c:1.47 --- src/lib/libc/gen/fts.c:1.46 Wed Sep 26 11:33:43 2012 +++ src/lib/libc/gen/fts.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: fts.c,v 1.46 2012/09/26 15:33:43 msaitoh Exp $ */ +/* $NetBSD: fts.c,v 1.47 2014/09/18 13:58:20 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.46 2012/09/26 15:33:43 msaitoh Exp $"); +__RCSID("$NetBSD: fts.c,v 1.47 2014/09/18 13:58:20 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -601,7 +601,7 @@ fts_children(FTS *sp, int instr) ISSET(FTS_NOCHDIR)) return (sp->fts_child = fts_build(sp, instr)); - if ((fd = open(".", O_RDONLY, 0)) == -1) + if ((fd = open(".", O_RDONLY | O_CLOEXEC, 0)) == -1) return (sp->fts_child = NULL); sp->fts_child = fts_build(sp, instr); if (fchdir(fd)) { @@ -1211,7 +1211,7 @@ fts_safe_changedir(const FTS *sp, const if (ISSET(FTS_NOCHDIR)) return 0; - if (oldfd < 0 && (fd = open(path, O_RDONLY)) == -1) + if (oldfd < 0 && (fd = open(path, O_RDONLY | O_CLOEXEC)) == -1) return -1; if (fstat(fd, &sb) == -1) Index: src/lib/libc/gen/getcap.c diff -u src/lib/libc/gen/getcap.c:1.53 src/lib/libc/gen/getcap.c:1.54 --- src/lib/libc/gen/getcap.c:1.53 Thu Jun 26 16:14:32 2014 +++ src/lib/libc/gen/getcap.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: getcap.c,v 1.53 2014/06/26 20:14:32 christos Exp $ */ +/* $NetBSD: getcap.c,v 1.54 2014/09/18 13:58:20 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.53 2014/06/26 20:14:32 christos Exp $"); +__RCSID("$NetBSD: getcap.c,v 1.54 2014/09/18 13:58:20 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -322,8 +322,8 @@ getent(char **cap, size_t *len, const ch size_t clen; (void)snprintf(pbuf, sizeof(pbuf), "%s.db", *db_p); - if ((capdbp = dbopen(pbuf, O_RDONLY, 0, DB_HASH, 0)) - != NULL) { + if ((capdbp = dbopen(pbuf, O_RDONLY | O_CLOEXEC, 0, + DB_HASH, 0)) != NULL) { free(record); retval = cdbget(capdbp, &record, name); if (retval < 0) { @@ -352,7 +352,7 @@ getent(char **cap, size_t *len, const ch } else #endif { - fd = open(*db_p, O_RDONLY, 0); + fd = open(*db_p, O_RDONLY | O_CLOEXEC, 0); if (fd < 0) { /* No error on unfound file. */ continue; Index: src/lib/libc/gen/syslog.c diff -u src/lib/libc/gen/syslog.c:1.53 src/lib/libc/gen/syslog.c:1.54 --- src/lib/libc/gen/syslog.c:1.53 Thu Oct 11 13:09:55 2012 +++ src/lib/libc/gen/syslog.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: syslog.c,v 1.53 2012/10/11 17:09:55 christos Exp $ */ +/* $NetBSD: syslog.c,v 1.54 2014/09/18 13:58:20 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.53 2012/10/11 17:09:55 christos Exp $"); +__RCSID("$NetBSD: syslog.c,v 1.54 2014/09/18 13:58:20 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -457,7 +457,8 @@ vsyslogp_r(int pri, struct syslog_data * * Make sure the error reported is the one from the syslogd failure. */ if (tries == MAXTRIES && (data->log_stat & LOG_CONS) && - (fd = open(_PATH_CONSOLE, O_WRONLY|O_NONBLOCK, 0)) >= 0) { + (fd = open(_PATH_CONSOLE, + O_WRONLY | O_NONBLOCK | O_CLOEXEC, 0)) >= 0) { iov[iovcnt].iov_base = __UNCONST(CRLF); iov[iovcnt].iov_len = 2; (void)writev(fd, iov, iovcnt + 1); Index: src/lib/libc/gen/getpass.c diff -u src/lib/libc/gen/getpass.c:1.28 src/lib/libc/gen/getpass.c:1.29 --- src/lib/libc/gen/getpass.c:1.28 Mon Jun 16 12:29:30 2014 +++ src/lib/libc/gen/getpass.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: getpass.c,v 1.28 2014/06/16 16:29:30 christos Exp $ */ +/* $NetBSD: getpass.c,v 1.29 2014/09/18 13:58:20 christos Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: getpass.c,v 1.28 2014/06/16 16:29:30 christos Exp $"); +__RCSID("$NetBSD: getpass.c,v 1.29 2014/09/18 13:58:20 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" @@ -107,7 +107,8 @@ getpassfd(const char *prompt, char *buf, * and write to stderr. */ fd = fdc; - if ((fd[0] = fd[1] = fd[2] = open(_PATH_TTY, O_RDWR)) == -1) { + if ((fd[0] = fd[1] = fd[2] = open(_PATH_TTY, + O_RDWR | O_CLOEXEC)) == -1) { fd[0] = STDIN_FILENO; fd[1] = fd[2] = STDERR_FILENO; } else Index: src/lib/libc/gen/nlist.c diff -u src/lib/libc/gen/nlist.c:1.24 src/lib/libc/gen/nlist.c:1.25 --- src/lib/libc/gen/nlist.c:1.24 Wed Mar 21 11:32:26 2012 +++ src/lib/libc/gen/nlist.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: nlist.c,v 1.24 2012/03/21 15:32:26 christos Exp $ */ +/* $NetBSD: nlist.c,v 1.25 2014/09/18 13:58:20 christos Exp $ */ /* * Copyright (c) 1989, 1993 @@ -66,7 +66,7 @@ #if 0 static char sccsid[] = "@(#)nlist.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: nlist.c,v 1.24 2012/03/21 15:32:26 christos Exp $"); +__RCSID("$NetBSD: nlist.c,v 1.25 2014/09/18 13:58:20 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -119,7 +119,7 @@ nlist(const char *name, struct nlist *li _DIAGASSERT(name != NULL); _DIAGASSERT(list != NULL); - fd = open(name, O_RDONLY, 0); + fd = open(name, O_RDONLY | O_CLOEXEC, 0); if (fd < 0) return (-1); n = __fdnlist(fd, list); Index: src/lib/libc/gen/utmpx.c diff -u src/lib/libc/gen/utmpx.c:1.31 src/lib/libc/gen/utmpx.c:1.32 --- src/lib/libc/gen/utmpx.c:1.31 Thu Sep 5 13:35:11 2013 +++ src/lib/libc/gen/utmpx.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: utmpx.c,v 1.31 2013/09/05 17:35:11 pooka Exp $ */ +/* $NetBSD: utmpx.c,v 1.32 2014/09/18 13:58:20 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.31 2013/09/05 17:35:11 pooka Exp $"); +__RCSID("$NetBSD: utmpx.c,v 1.32 2014/09/18 13:58:20 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" @@ -122,8 +122,8 @@ getutxent(void) struct stat st; if ((fp = fopen(utfile, "re+")) == NULL) - if ((fp = fopen(utfile, "w+")) == NULL) { - if ((fp = fopen(utfile, "r")) == NULL) + if ((fp = fopen(utfile, "we+")) == NULL) { + if ((fp = fopen(utfile, "re")) == NULL) goto fail; else readonly = 1; @@ -343,10 +343,10 @@ updwtmpx(const char *file, const struct _DIAGASSERT(file != NULL); _DIAGASSERT(utx != NULL); - fd = open(file, O_WRONLY|O_APPEND|O_SHLOCK); + fd = open(file, O_WRONLY|O_APPEND|O_SHLOCK|O_CLOEXEC); if (fd == -1) { - if ((fd = open(file, O_CREAT|O_WRONLY|O_EXLOCK, 0644)) == -1) + if ((fd = open(file, O_CREAT|O_WRONLY|O_EXLOCK|O_CLOEXEC, 0644)) == -1) return -1; (void)memset(&ut, 0, sizeof(ut)); ut.ut_type = SIGNATURE; @@ -432,7 +432,7 @@ getlastlogx(const char *fname, uid_t uid _DIAGASSERT(fname != NULL); _DIAGASSERT(ll != NULL); - db = dbopen(fname, O_RDONLY|O_SHLOCK, 0, DB_HASH, NULL); + db = dbopen(fname, O_RDONLY|O_SHLOCK|O_CLOEXEC, 0, DB_HASH, NULL); if (db == NULL) return NULL; @@ -471,7 +471,7 @@ updlastlogx(const char *fname, uid_t uid _DIAGASSERT(fname != NULL); _DIAGASSERT(ll != NULL); - db = dbopen(fname, O_RDWR|O_CREAT|O_EXLOCK, 0644, DB_HASH, NULL); + db = dbopen(fname, O_RDWR|O_CREAT|O_EXLOCK|O_CLOEXEC, 0644, DB_HASH, NULL); if (db == NULL) return -1; Index: src/lib/libc/gmon/gmon.c diff -u src/lib/libc/gmon/gmon.c:1.34 src/lib/libc/gmon/gmon.c:1.35 --- src/lib/libc/gmon/gmon.c:1.34 Tue Mar 13 17:13:37 2012 +++ src/lib/libc/gmon/gmon.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: gmon.c,v 1.34 2012/03/13 21:13:37 christos Exp $ */ +/* $NetBSD: gmon.c,v 1.35 2014/09/18 13:58:20 christos Exp $ */ /* * Copyright (c) 2003, 2004 Wasabi Systems, Inc. @@ -69,7 +69,7 @@ #if 0 static char sccsid[] = "@(#)gmon.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: gmon.c,v 1.34 2012/03/13 21:13:37 christos Exp $"); +__RCSID("$NetBSD: gmon.c,v 1.35 2014/09/18 13:58:20 christos Exp $"); #endif #endif @@ -432,13 +432,14 @@ _mcleanup(void) proffile = "gmon.out"; } - fd = open(proffile , O_CREAT|O_TRUNC|O_WRONLY, 0666); +#define OPEN_FLAGS (O_CREAT | O_TRUNC | O_WRONLY | O_CLOEXEC) + fd = open(proffile, OPEN_FLAGS, 0666); if (fd < 0) { warn("%s: Cannot open `%s'", __func__, proffile); return; } #ifdef DEBUG - logfd = open("gmon.log", O_CREAT|O_TRUNC|O_WRONLY, 0664); + logfd = open("gmon.log", OPEN_FLAGS, 0664); if (logfd < 0) { warn("%s: Cannot open `%s'", __func__, "gmon.log"); (void)close(fd); Index: src/lib/libc/hash/hashhl.c diff -u src/lib/libc/hash/hashhl.c:1.4 src/lib/libc/hash/hashhl.c:1.5 --- src/lib/libc/hash/hashhl.c:1.4 Sun Jan 17 18:10:20 2010 +++ src/lib/libc/hash/hashhl.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: hashhl.c,v 1.4 2010/01/17 23:10:20 wiz Exp $ */ +/* $NetBSD: hashhl.c,v 1.5 2014/09/18 13:58:20 christos Exp $ */ /* * ---------------------------------------------------------------------------- @@ -97,7 +97,7 @@ FNPREFIX(FileChunk)(const char *filename FNPREFIX(Init)(&ctx); - if ((fd = open(filename, O_RDONLY)) < 0) + if ((fd = open(filename, O_RDONLY | O_CLOEXEC)) < 0) return (NULL); if (len == 0) { if (fstat(fd, &sb) == -1) { Index: src/lib/libc/md/mdXhl.c diff -u src/lib/libc/md/mdXhl.c:1.10 src/lib/libc/md/mdXhl.c:1.11 --- src/lib/libc/md/mdXhl.c:1.10 Mon Jun 25 18:32:44 2012 +++ src/lib/libc/md/mdXhl.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: mdXhl.c,v 1.10 2012/06/25 22:32:44 abs Exp $ */ +/* $NetBSD: mdXhl.c,v 1.11 2014/09/18 13:58:20 christos Exp $ */ /* * ---------------------------------------------------------------------------- @@ -81,7 +81,7 @@ MDNAME(File)(const char *filename, char /* buf may be NULL */ MDNAME(Init)(&ctx); - f = open(filename, O_RDONLY, 0666); + f = open(filename, O_RDONLY | O_CLOEXEC, 0666); if (f < 0) return NULL; Index: src/lib/libc/net/ethers.c diff -u src/lib/libc/net/ethers.c:1.24 src/lib/libc/net/ethers.c:1.25 --- src/lib/libc/net/ethers.c:1.24 Thu Jun 19 11:09:07 2014 +++ src/lib/libc/net/ethers.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ethers.c,v 1.24 2014/06/19 15:09:07 christos Exp $ */ +/* $NetBSD: ethers.c,v 1.25 2014/09/18 13:58:20 christos Exp $ */ /* * ethers(3N) a la Sun. @@ -9,7 +9,7 @@ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: ethers.c,v 1.24 2014/06/19 15:09:07 christos Exp $"); +__RCSID("$NetBSD: ethers.c,v 1.25 2014/09/18 13:58:20 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" @@ -97,7 +97,7 @@ ether_ntohost(char *hostname, const stru e->ether_addr_octet[4], e->ether_addr_octet[5]); #endif - f = fopen(_PATH_ETHERS, "r"); + f = fopen(_PATH_ETHERS, "re"); if (f == NULL) return -1; for (p = NULL;;) { @@ -150,7 +150,7 @@ ether_hostton(const char *hostname, stru _DIAGASSERT(hostname != NULL); _DIAGASSERT(e != NULL); - f = fopen(_PATH_ETHERS, "r"); + f = fopen(_PATH_ETHERS, "re"); if (f == NULL) return -1; Index: src/lib/libc/net/hesiod.c diff -u src/lib/libc/net/hesiod.c:1.27 src/lib/libc/net/hesiod.c:1.28 --- src/lib/libc/net/hesiod.c:1.27 Tue Mar 20 13:44:18 2012 +++ src/lib/libc/net/hesiod.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: hesiod.c,v 1.27 2012/03/20 17:44:18 matt Exp $ */ +/* $NetBSD: hesiod.c,v 1.28 2014/09/18 13:58:20 christos Exp $ */ /* Copyright (c) 1996 by Internet Software Consortium. * @@ -51,7 +51,7 @@ __IDSTRING(rcsid_hesiod_p_h, "#Id: hesiod_p.h,v 1.1 1996/12/08 21:39:37 ghudson Exp #"); __IDSTRING(rcsid_hescompat_c, "#Id: hescompat.c,v 1.1.2.1 1996/12/16 08:37:45 ghudson Exp #"); -__RCSID("$NetBSD: hesiod.c,v 1.27 2012/03/20 17:44:18 matt Exp $"); +__RCSID("$NetBSD: hesiod.c,v 1.28 2014/09/18 13:58:20 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" @@ -320,7 +320,7 @@ read_config_file(struct hesiod_p *ctx, c ctx->classes[1] = C_HS; /* Try to open the configuration file. */ - fp = fopen(filename, "r"); + fp = fopen(filename, "re"); if (!fp) { /* Use compiled in default domain names. */ ctx->lhs = strdup(DEF_LHS); Index: src/lib/libc/net/nsdispatch.c diff -u src/lib/libc/net/nsdispatch.c:1.37 src/lib/libc/net/nsdispatch.c:1.38 --- src/lib/libc/net/nsdispatch.c:1.37 Tue Mar 13 17:13:42 2012 +++ src/lib/libc/net/nsdispatch.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: nsdispatch.c,v 1.37 2012/03/13 21:13:42 christos Exp $ */ +/* $NetBSD: nsdispatch.c,v 1.38 2014/09/18 13:58:20 christos Exp $ */ /*- * Copyright (c) 1997, 1998, 1999, 2004 The NetBSD Foundation, Inc. @@ -63,7 +63,7 @@ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: nsdispatch.c,v 1.37 2012/03/13 21:13:42 christos Exp $"); +__RCSID("$NetBSD: nsdispatch.c,v 1.38 2014/09/18 13:58:20 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" @@ -519,7 +519,7 @@ _nsconfigure(void) */ rwlock_wrlock(&_nslock); - _nsyyin = fopen(_PATH_NS_CONF, "r"); + _nsyyin = fopen(_PATH_NS_CONF, "re"); if (_nsyyin == NULL) { /* * Unable to open nsswitch.conf; behave as though the Index: src/lib/libc/net/rcmd.c diff -u src/lib/libc/net/rcmd.c:1.69 src/lib/libc/net/rcmd.c:1.70 --- src/lib/libc/net/rcmd.c:1.69 Wed May 28 10:39:02 2014 +++ src/lib/libc/net/rcmd.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: rcmd.c,v 1.69 2014/05/28 14:39:02 christos Exp $ */ +/* $NetBSD: rcmd.c,v 1.70 2014/09/18 13:58:20 christos Exp $ */ /* * Copyright (c) 1983, 1993, 1994 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)rcmd.c 8.3 (Berkeley) 3/26/94"; #else -__RCSID("$NetBSD: rcmd.c,v 1.69 2014/05/28 14:39:02 christos Exp $"); +__RCSID("$NetBSD: rcmd.c,v 1.70 2014/09/18 13:58:20 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -670,7 +670,7 @@ iruserok_sa(const void *raddr, int rlen, __rcmd_errstr = NULL; - hostf = superuser ? NULL : fopen(_PATH_HEQUIV, "r"); + hostf = superuser ? NULL : fopen(_PATH_HEQUIV, "re"); if (hostf) { if (__ivaliduser_sa(hostf, sa, (socklen_t)rlen, luser, @@ -700,7 +700,7 @@ iruserok_sa(const void *raddr, int rlen, (void)setegid(pwd->pw_gid); (void)initgroups(pwd->pw_name, pwd->pw_gid); (void)seteuid(pwd->pw_uid); - hostf = fopen(pbuf, "r"); + hostf = fopen(pbuf, "re"); if (hostf != NULL) { /* Index: src/lib/libc/rpc/getnetconfig.c diff -u src/lib/libc/rpc/getnetconfig.c:1.21 src/lib/libc/rpc/getnetconfig.c:1.22 --- src/lib/libc/rpc/getnetconfig.c:1.21 Mon Mar 11 16:19:29 2013 +++ src/lib/libc/rpc/getnetconfig.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: getnetconfig.c,v 1.21 2013/03/11 20:19:29 tron Exp $ */ +/* $NetBSD: getnetconfig.c,v 1.22 2014/09/18 13:58:20 christos Exp $ */ /* * Copyright (c) 2010, Oracle America, Inc. @@ -36,7 +36,7 @@ #if 0 static char sccsid[] = "@(#)getnetconfig.c 1.12 91/12/19 SMI"; #else -__RCSID("$NetBSD: getnetconfig.c,v 1.21 2013/03/11 20:19:29 tron Exp $"); +__RCSID("$NetBSD: getnetconfig.c,v 1.22 2014/09/18 13:58:20 christos Exp $"); #endif #endif @@ -449,7 +449,7 @@ getnetconfigent(const char *netid) return(NULL); } - if ((file = fopen(NETCONFIG, "r")) == NULL) + if ((file = fopen(NETCONFIG, "re")) == NULL) return (NULL); if ((linep = malloc(MAXNETCONFIGLINE)) == NULL) { Index: src/lib/libc/stdlib/malloc.c diff -u src/lib/libc/stdlib/malloc.c:1.55 src/lib/libc/stdlib/malloc.c:1.56 --- src/lib/libc/stdlib/malloc.c:1.55 Sun Dec 30 16:23:20 2012 +++ src/lib/libc/stdlib/malloc.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: malloc.c,v 1.55 2012/12/30 21:23:20 dholland Exp $ */ +/* $NetBSD: malloc.c,v 1.56 2014/09/18 13:58:20 christos Exp $ */ /* * ---------------------------------------------------------------------------- @@ -90,7 +90,7 @@ void utrace(struct ut *, int); #include <sys/cdefs.h> #include "extern.h" #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: malloc.c,v 1.55 2012/12/30 21:23:20 dholland Exp $"); +__RCSID("$NetBSD: malloc.c,v 1.56 2014/09/18 13:58:20 christos Exp $"); #endif /* LIBC_SCCS and not lint */ int utrace(const char *, void *, size_t); @@ -107,7 +107,7 @@ static mutex_t thread_lock = MUTEX_INITI static int fdzero; # define MMAP_FD fdzero # define INIT_MMAP() \ - { if ((fdzero = open(_PATH_DEVZERO, O_RDWR, 0000)) == -1) \ + { if ((fdzero = open(_PATH_DEVZERO, O_RDWR | O_CLOEXEC, 0000)) == -1) \ wrterror("open of /dev/zero"); } #endif /* __sparc__ */ Index: src/lib/libc/time/getdate.c diff -u src/lib/libc/time/getdate.c:1.2 src/lib/libc/time/getdate.c:1.3 --- src/lib/libc/time/getdate.c:1.2 Sun Nov 22 13:07:39 2009 +++ src/lib/libc/time/getdate.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: getdate.c,v 1.2 2009/11/22 18:07:39 mbalmer Exp $ */ +/* $NetBSD: getdate.c,v 1.3 2014/09/18 13:58:20 christos Exp $ */ /* * Copyright (c) 2009 The NetBSD Foundation, Inc. * All rights reserved. @@ -82,7 +82,7 @@ getdate(const char *str) return (NULL); } - if ((fp = fopen(datemsk, "r")) == NULL) { + if ((fp = fopen(datemsk, "re")) == NULL) { getdate_err = 2; return (NULL); } Index: src/lib/libc/time/localtime.c diff -u src/lib/libc/time/localtime.c:1.85 src/lib/libc/time/localtime.c:1.86 --- src/lib/libc/time/localtime.c:1.85 Sat Aug 16 12:22:21 2014 +++ src/lib/libc/time/localtime.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: localtime.c,v 1.85 2014/08/16 16:22:21 christos Exp $ */ +/* $NetBSD: localtime.c,v 1.86 2014/09/18 13:58:20 christos Exp $ */ /* ** This file is in the public domain, so clarified as of @@ -10,7 +10,7 @@ #if 0 static char elsieid[] = "@(#)localtime.c 8.17"; #else -__RCSID("$NetBSD: localtime.c,v 1.85 2014/08/16 16:22:21 christos Exp $"); +__RCSID("$NetBSD: localtime.c,v 1.86 2014/09/18 13:58:20 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -61,10 +61,10 @@ static time_t const time_t_max = */ #ifdef O_BINARY -#define OPEN_MODE (O_RDONLY | O_BINARY) +#define OPEN_MODE (O_RDONLY | O_BINARY | O_CLOEXEC) #endif /* defined O_BINARY */ #ifndef O_BINARY -#define OPEN_MODE O_RDONLY +#define OPEN_MODE (O_RDONLY | O_CLOEXEC) #endif /* !defined O_BINARY */ #ifndef WILDABBR Index: src/lib/libc/time/strftime.c diff -u src/lib/libc/time/strftime.c:1.31 src/lib/libc/time/strftime.c:1.32 --- src/lib/libc/time/strftime.c:1.31 Fri Aug 15 07:04:07 2014 +++ src/lib/libc/time/strftime.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: strftime.c,v 1.31 2014/08/15 11:04:07 christos Exp $ */ +/* $NetBSD: strftime.c,v 1.32 2014/09/18 13:58:20 christos Exp $ */ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) @@ -6,7 +6,7 @@ static char elsieid[] = "@(#)strftime.c 7.64"; static char elsieid[] = "@(#)strftime.c 8.3"; #else -__RCSID("$NetBSD: strftime.c,v 1.31 2014/08/15 11:04:07 christos Exp $"); +__RCSID("$NetBSD: strftime.c,v 1.32 2014/09/18 13:58:20 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -714,7 +714,7 @@ _loc(void) goto no_locale; oldsun = 0; (void) sprintf(filename, "%s/%s/%s", locale_home, name, lc_time); - fd = open(filename, O_RDONLY); + fd = open(filename, O_RDONLY | O_CLOEXEC); if (fd < 0) { /* ** Old Sun systems have a different naming and data convention. @@ -722,7 +722,7 @@ _loc(void) oldsun = 1; (void) sprintf(filename, "%s/%s/%s", locale_home, lc_time, name); - fd = open(filename, O_RDONLY); + fd = open(filename, O_RDONLY | O_CLOEXEC); if (fd < 0) goto no_locale; } Index: src/lib/libc/yp/yplib.c diff -u src/lib/libc/yp/yplib.c:1.45 src/lib/libc/yp/yplib.c:1.46 --- src/lib/libc/yp/yplib.c:1.45 Tue Mar 20 12:30:26 2012 +++ src/lib/libc/yp/yplib.c Thu Sep 18 09:58:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: yplib.c,v 1.45 2012/03/20 16:30:26 matt Exp $ */ +/* $NetBSD: yplib.c,v 1.46 2014/09/18 13:58:20 christos Exp $ */ /* * Copyright (c) 1992, 1993 Theo de Raadt <dera...@fsa.ca> @@ -28,7 +28,7 @@ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: yplib.c,v 1.45 2012/03/20 16:30:26 matt Exp $"); +__RCSID("$NetBSD: yplib.c,v 1.46 2014/09/18 13:58:20 christos Exp $"); #endif #include "namespace.h" @@ -115,7 +115,7 @@ _yp_dobind(const char *dom, struct dom_b /* * test if YP is running or not */ - if ((fd = open(YPBINDLOCK, O_RDONLY)) == -1) + if ((fd = open(YPBINDLOCK, O_RDONLY | O_CLOEXEC)) == -1) return YPERR_YPBIND; if (!(flock(fd, LOCK_EX | LOCK_NB) == -1 && errno == EWOULDBLOCK)) { (void)close(fd); @@ -155,7 +155,7 @@ again: if (ysd->dom_vers == 0) { (void) snprintf(path, sizeof(path), "%s/%s.%d", BINDINGDIR, dom, 2); - if ((fd = open(path, O_RDONLY)) == -1) { + if ((fd = open(path, O_RDONLY | O_CLOEXEC)) == -1) { /* * no binding file, YP is dead, or not yet fully * alive.