From a4c870decaef3af18c18a5539e00ce7f9686b7eb Mon Sep 17 00:00:00 2001 From: Marian Ohligs Date: Mon, 11 Jul 2011 13:36:41 +0200 Subject: [PATCH] - bugfix in syscall.c - disable FILE_TYPE checks in lseek for testing purposes --- kernel/syscall.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/kernel/syscall.c b/kernel/syscall.c index ff2ff601..6a711ce5 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -44,14 +44,16 @@ static int sys_open(const char* name, int flags, int mode) file->mode = mode; file->flags = flags; check = open_fs(file, (char*) name); - if (BUILTIN_EXPECT(check != -EINVAL, 0)) { + if (check == -EINVAL) { /* file doesn't exist! */ file->node = NULL; file->offset = 0; file->mode = 0; file->flags = 0; + kprintf("Operation not permitted"); return -EINVAL; } + break; } } if (fd >= NR_OPEN) { @@ -85,9 +87,10 @@ static int sys_lseek(int fd, off_t pos, int origin) int ret = -EINVAL; fildes_t* file = &(per_core(current_task)->fildes_table[fd]); - if (BUILTIN_EXPECT(file->node->type != FS_FILE - && file->node->type != FS_CHARDEVICE, 0)); - return -EINVAL; + // Disabled for testing purposes + //if (BUILTIN_EXPECT(file->node->type != FS_FILE + // && file->node->type != FS_CHARDEVICE, 0)); + // return -EINVAL; switch(origin) {