Kernel: Do not return ENOENT for unresolved symbols

ENOENT means "no such file or directory", not "no such symbol". Return EINVAL
instead, as we already do in other cases.
This commit is contained in:
Sergey Bugaev 2020-01-19 01:22:40 +03:00 committed by Andreas Kling
parent d0d13e2bf5
commit 3e1ed38d4b
Notes: sideshowbarker 2024-07-19 09:58:14 +09:00
2 changed files with 2 additions and 3 deletions

View file

@ -25,8 +25,7 @@ returns -1 and sets `errno` to describe the error.
* `EPERM`: The calling process does not have superuser permissions.
* `EFAULT`: `path` pointed to memory that was not accessible for the caller.
* `ENOEXEC`: The specified file could not be parsed as an ELF object.
* `ENOENT`: One or more symbols referred to by the module could not be resolved.
* `EINVAL`: The module had no `.text` section, or didn't export a `module_init` function.
* `EINVAL`: One or more symbols referred to by the module could not be resolved, or the module had no `.text` section, or didn't export a `module_init` function.
* `EEXIST`: A module with the same name was already loaded.
## See also

View file

@ -4286,7 +4286,7 @@ int Process::sys$module_load(const char* user_path, size_t path_length)
});
if (missing_symbols)
return -ENOENT;
return -EINVAL;
auto* text_base = section_storage_by_name.get(".text").value_or(nullptr);
if (!text_base) {