summaryrefslogtreecommitdiff
path: root/src/kernel/syscalls.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/syscalls.c')
-rw-r--r--src/kernel/syscalls.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/kernel/syscalls.c b/src/kernel/syscalls.c
index e94f886..a6c807c 100644
--- a/src/kernel/syscalls.c
+++ b/src/kernel/syscalls.c
@@ -73,6 +73,14 @@ hid_t _sys_open(const char __user *path, long len, int flags) {
goto fail;
}
+ /* I used to allow NUL in paths. Now I don't, but I want to keep the same
+ * API -- so let's reject paths with NUL in them. */
+ for (long i = 0; i < len; i++) {
+ if (path_buf[i] == '\0') {
+ goto fail;
+ }
+ }
+
len = path_simplify(path_buf, path_buf, len);
if (len == 0) goto fail;