diff --git a/README b/README index 11421ac..6313d5d 100644 --- a/README +++ b/README @@ -114,9 +114,9 @@ embedded devices. Most of them are proprietary, with their own users. Some of them are structurally too simplistic, and lack modern features such as paging. There ones that are well established, but Codezero will contrast them by providing an alternative that will follow the open source development principles -more closely. Many embedded software projects still use older development -methods and the right open source methodology would prove favorable in the -fast-paced nature of embedded software development. +more closely. Many embedded software projects still use older or closed +development methods and the right open source methodology would prove favorable +in the fast-paced nature of embedded software development. Finally, POSIX compliance is only a step, or a temporary aim for the Codezero microkernel. It is not limited to the goal of just complying with POSIX, which diff --git a/tasks/libposix/README b/tasks/libposix/README index fe1d815..8822688 100644 --- a/tasks/libposix/README +++ b/tasks/libposix/README @@ -16,15 +16,28 @@ shmdt mmap munmap read +readdir write lseek open close creat +mkdir +mknod +link unlink fork execve getpid +wait +kill + +Others: +pipe +mount +unmount +swapon + New ones will be added as needed. diff --git a/tasks/mm0/src/file.c b/tasks/mm0/src/file.c index 638f680..1563ead 100644 --- a/tasks/mm0/src/file.c +++ b/tasks/mm0/src/file.c @@ -412,6 +412,11 @@ int sys_write(l4id_t sender, int fd, void *buf, int count) BUG_ON(!(t = find_task(sender))); + if ((err = check_access(t, buf, count)) < 0) { + l4_ipc_return(err); + return 0; + } + /* TODO: Check user buffer, count and fd validity */ if (fd < 0 || fd > TASK_FILES_MAX) { l4_ipc_return(-EBADF);