diff --git a/apps/src/init.c b/apps/src/init.c index a6774a03..01fc6778 100644 --- a/apps/src/init.c +++ b/apps/src/init.c @@ -123,7 +123,7 @@ int main() sleep(2); - if (execv("/bin/sym", NULL) < 0) + if (execv("/sys/config", NULL) < 0) { perror("execv"); return 1; diff --git a/kernel/include/errno.h b/kernel/include/errno.h index e7d472e9..efd5e4f8 100644 --- a/kernel/include/errno.h +++ b/kernel/include/errno.h @@ -2,6 +2,7 @@ #define EPERM 1 #define ENOENT 2 +#define ENOEXEC 8 #define EBADF 9 #define ENOMEM 12 #define EISDIR 21 diff --git a/kernel/src/sys/exec.cpp b/kernel/src/sys/exec.cpp index c9663df5..5c242fbb 100644 --- a/kernel/src/sys/exec.cpp +++ b/kernel/src/sys/exec.cpp @@ -34,7 +34,7 @@ void sys_exec(Context* context, const char* pathname) if (ELFLoader::check_elf_image(program) < 0) { - context->rax = -EINVAL; // FIXME: Should be ENOEXEC. + context->rax = -ENOEXEC; return; } diff --git a/libs/libc/include/errno.h b/libs/libc/include/errno.h index 8efcc4b7..e5553588 100644 --- a/libs/libc/include/errno.h +++ b/libs/libc/include/errno.h @@ -6,6 +6,7 @@ extern int errno; #define EPERM 1 // Operation not permitted #define ENOENT 2 // No such file or directory +#define ENOEXEC 8 // Exec format error #define EBADF 9 // Bad file descriptor #define ENOMEM 12 // Cannot allocate memory #define EISDIR 21 // Is a directory diff --git a/libs/libc/src/string.cpp b/libs/libc/src/string.cpp index ef4334ca..82bf0e04 100644 --- a/libs/libc/src/string.cpp +++ b/libs/libc/src/string.cpp @@ -127,6 +127,7 @@ extern "C" case EBADF: return "Bad file descriptor"; case EMFILE: return "Too many open files"; case EISDIR: return "Is a directory"; + case ENOEXEC: return "Exec format error"; case 0: return "Success"; default: return (char*)(unsigned long int)err; }