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;