libc should use O_CLOEXEC when opening files for its own use.

Change-Id: I159f1d57e0ca090d837f57854fcef5879b8b8248
This commit is contained in:
Elliott Hughes 2014-08-26 15:56:54 -07:00
parent c764fb24cc
commit c674edbf27
7 changed files with 11 additions and 11 deletions

View file

@ -71,7 +71,7 @@ __LIBC_HIDDEN__ mapinfo_t* mapinfo_create(pid_t pid) {
struct mapinfo_t* milist = NULL;
char data[1024]; // Used to read lines as well as to construct the filename.
snprintf(data, sizeof(data), "/proc/%d/maps", pid);
FILE* fp = fopen(data, "r");
FILE* fp = fopen(data, "re");
if (fp != NULL) {
while (fgets(data, sizeof(data), fp) != NULL) {
mapinfo_t* mi = parse_maps_line(data);

View file

@ -36,7 +36,7 @@ void pututline(struct utmp* utmp)
struct utmp u;
long i;
if (!(f = fopen(_PATH_UTMP, "w+")))
if (!(f = fopen(_PATH_UTMP, "w+e")))
return;
while (fread(&u, sizeof(struct utmp), 1, f) == 1)
@ -55,7 +55,7 @@ void pututline(struct utmp* utmp)
fclose(f);
if (!(f = fopen(_PATH_UTMP, "w+")))
if (!(f = fopen(_PATH_UTMP, "w+e")))
return;
fwrite(utmp, sizeof(struct utmp), 1, f);

View file

@ -95,7 +95,7 @@ static int __sysconf_nprocessors_conf() {
}
static int __sysconf_nprocessors_onln() {
FILE* fp = fopen("/proc/stat", "r");
FILE* fp = fopen("/proc/stat", "re");
if (fp == NULL) {
return 1;
}
@ -118,7 +118,7 @@ static int __sysconf_nprocessors_onln() {
}
static int __get_meminfo(const char* pattern) {
FILE* fp = fopen("/proc/meminfo", "r");
FILE* fp = fopen("/proc/meminfo", "re");
if (fp == NULL) {
return -1;
}

View file

@ -899,7 +899,7 @@ _sethtent(int f)
res_static rs = __res_get_static();
if (rs == NULL) return;
if (!rs->hostf)
rs->hostf = fopen(_PATH_HOSTS, "r" );
rs->hostf = fopen(_PATH_HOSTS, "re" );
else
rewind(rs->hostf);
rs->stayopen = f;
@ -925,7 +925,7 @@ _gethtent(void)
int af, len;
res_static rs = __res_get_static();
if (!rs->hostf && !(rs->hostf = fopen(_PATH_HOSTS, "r" ))) {
if (!rs->hostf && !(rs->hostf = fopen(_PATH_HOSTS, "re" ))) {
h_errno = NETDB_INTERNAL;
return NULL;
}

View file

@ -2017,7 +2017,7 @@ _sethtent(FILE **hostf)
{
if (!*hostf)
*hostf = fopen(_PATH_HOSTS, "r" );
*hostf = fopen(_PATH_HOSTS, "re");
else
rewind(*hostf);
}
@ -2046,7 +2046,7 @@ _gethtent(FILE **hostf, const char *name, const struct addrinfo *pai)
assert(name != NULL);
assert(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)))

View file

@ -1436,7 +1436,7 @@ _dump_answer(const void* answer, int answerlen)
char* buf;
int fileLen;
fp = fopen("/data/reslog.txt", "w+");
fp = fopen("/data/reslog.txt", "w+e");
if (fp != NULL) {
statep = __res_get_state();

View file

@ -289,7 +289,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) {
/* read the config file */
while (fgets(buf, sizeof(buf), fp) != NULL) {
/* skip comments */