1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 00:25:07 +00:00

Kernel: Disallow loading a module twice without explicitly unloading it

This ensures that a module has the chance to run its cleanup functions
before it's taken out of service.
This commit is contained in:
Conrad Pankoff 2019-12-24 11:40:26 +11:00 committed by Andreas Kling
parent ff3003c645
commit 9a8032b479

View file

@ -3699,6 +3699,11 @@ int Process::sys$module_load(const char* path, size_t path_length)
if (!module->module_init)
return -EINVAL;
if (g_modules->contains(module->name)) {
dbg() << "a module with the name " << module->name << " is already loaded; please unload it first";
return -EEXIST;
}
module->module_init();
auto name = module->name;