+// Copyright (2013) Jann Horn <jann@thejh.net>
+// This code is licensed under the AGPLv3.
+
HEADER #include <sys/types.h>
#include <unistd.h>
#include <errno.h>
}
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;