libc should use O_CLOEXEC when opening files for its own use.
Change-Id: I159f1d57e0ca090d837f57854fcef5879b8b8248
This commit is contained in:
parent
c764fb24cc
commit
c674edbf27
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)))
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user