}
PUBLIC_FN char *slurp_file(char *path, size_t *len_out, int flags) {
- int fd = open(path, O_RDONLY);
+ int fd = open(path, O_RDONLY|O_CLOEXEC);
if (fd == -1) return NULL;
char *res = slurp_fd(fd, len_out, flags);
int errno_ = errno;
PUBLIC_FN int write_file(char *path, char *buf, ssize_t len, int open_flags) {
if (len == -1) len = strlen(buf);
- int fd = open(path, open_flags, 0777);
+ int fd = open(path, open_flags|O_CLOEXEC, 0777);
if (fd == -1) return 1;
ssize_t write_res = write_nointr(fd, buf, len, NULL);
int write_errno = errno;