aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Pesch <inolen@gmail.com>2013-07-12 23:29:47 -0700
committerAnthony Pesch <inolen@gmail.com>2013-07-12 23:29:47 -0700
commitc711f1e6e6d294200b04ad580827358b2ffa2374 (patch)
tree3fc32e028641739a1d48d139e6396d7e30eadf6a
parentfe247614cd79a135d3145fb5e66e152b620c9025 (diff)
check write permission in posix_fallocate
-rw-r--r--src/library.js2
-rw-r--r--tests/fcntl-misc/src.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/library.js b/src/library.js
index bf969fd7..6e41496b 100644
--- a/src/library.js
+++ b/src/library.js
@@ -1381,7 +1381,7 @@ LibraryManager.library = {
posix_fallocate: function(fd, offset, len) {
// int posix_fallocate(int fd, off_t offset, off_t len);
// http://pubs.opengroup.org/onlinepubs/009695399/functions/posix_fallocate.html
- if (!FS.streams[fd] || FS.streams[fd].link ||
+ if (!FS.streams[fd] || !FS.streams[fd].isWrite || FS.streams[fd].link ||
FS.streams[fd].isFolder || FS.streams[fd].isDevice) {
___setErrNo(ERRNO_CODES.EBADF);
return -1;
diff --git a/tests/fcntl-misc/src.c b/tests/fcntl-misc/src.c
index 73734969..7cdbbcd6 100644
--- a/tests/fcntl-misc/src.c
+++ b/tests/fcntl-misc/src.c
@@ -6,7 +6,7 @@
int main() {
struct stat s;
- int f = open("/test", O_RDONLY, 0777);
+ int f = open("/test", O_RDWR, 0777);
printf("posix_fadvise: %d\n", posix_fadvise(f, 3, 2, POSIX_FADV_DONTNEED));
printf("errno: %d\n", errno);