X-Git-Url: http://git.thejh.net/?p=libjh.git;a=blobdiff_plain;f=io.c;h=1a2ddd679cd8bbf9b1e56b5ac6aa510803893c36;hp=d3b9a6d5599dfbe170a3d0047a7f44bad41a014c;hb=52b17fa113152cb5549772255e2e3ffe66211c81;hpb=e3a7f339e843d1424aef577e5634ac70343ec49c;ds=sidebyside diff --git a/io.c b/io.c index d3b9a6d..1a2ddd6 100644 --- a/io.c +++ b/io.c @@ -1,3 +1,6 @@ +// Copyright (2013) Jann Horn +// This code is licensed under the AGPLv3. + HEADER #include #include #include @@ -109,7 +112,7 @@ PUBLIC_FN char *slurp_fd(int fd, size_t *len_out, int flags) { } 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; @@ -123,7 +126,7 @@ PUBLIC_FN char *slurp_file(char *path, size_t *len_out, int flags) { 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;