diff --git a/src/common/log.c b/src/common/log.c index 8fd0e7587f5f870a4b6511f9ce8d11889a48a26a..6ba69cc60f96ac3ce6a4b077b7777cfe77b32b60 100644 --- a/src/common/log.c +++ b/src/common/log.c @@ -342,13 +342,8 @@ _log_init(char *prog, log_options_t opt, log_facility_t fac, char *logfile ) log->logfp = fp; } - if (log->logfp) { - int fd; - if ((fd = fileno(log->logfp)) < 0) - log->logfp = NULL; - else - fd_set_close_on_exec(fd); - } + if (log->logfp && (fileno(log->logfp) < 0)) + log->logfp = NULL; log->initialized = 1; out: @@ -424,13 +419,8 @@ _sched_log_init(char *prog, log_options_t opt, log_facility_t fac, sched_log->logfp = fp; } - if (sched_log->logfp) { - int fd; - if ((fd = fileno(sched_log->logfp)) < 0) - sched_log->logfp = NULL; - else - fd_set_close_on_exec(fd); - } + if (sched_log->logfp && (fileno(sched_log->logfp) < 0)) + sched_log->logfp = NULL; sched_log->initialized = 1; out: diff --git a/src/common/safeopen.c b/src/common/safeopen.c index 4ac610e4749a607940e26c196ce6d0936a82715c..7d46ad9954a33bb32045de1c5c040eb2c1b1651c 100644 --- a/src/common/safeopen.c +++ b/src/common/safeopen.c @@ -61,6 +61,7 @@ FILE * safeopen(const char *path, const char *mode, int flags) } else oflags = O_RDONLY; + oflags |= O_CLOEXEC; oflags |= !(flags & SAFEOPEN_NOCREATE) ? O_CREAT : 0; oflags |= (flags & SAFEOPEN_CREATE_ONLY) ? O_EXCL : 0;