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:
parent
d0d13e2bf5
commit
3e1ed38d4b
Notes:
sideshowbarker
2024-07-19 09:58:14 +09:00
Author: https://github.com/bugaevc Commit: https://github.com/SerenityOS/serenity/commit/3e1ed38d4ba Pull-request: https://github.com/SerenityOS/serenity/pull/1096
2 changed files with 2 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue