summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sys/os/os_filedes.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/sys/os/os_filedes.c b/src/sys/os/os_filedes.c
index bb01f97..298a18a 100644
--- a/src/sys/os/os_filedes.c
+++ b/src/sys/os/os_filedes.c
@@ -250,6 +250,10 @@ write(int fd, const void *buf, size_t count)
return -EPERM;
}
+ /*
+ * Handle standard streams separately, otherwise if not a
+ * standard dream, write to it as a normal file
+ */
memcpy(kbuf, buf, count);
switch (fd) {
case STDOUT_FILENO:
@@ -259,7 +263,10 @@ write(int fd, const void *buf, size_t count)
);
break;
default:
- return -EBADF;
+ if (fdp->vp == NULL) {
+ return -EIO;
+ }
+ return vop_write(fdp->vp, kbuf, count);
}
return count;