mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 10:37:45 +00:00
Kernel: Handle OOM from KBuffer creation in sys$module()
This commit is contained in:
parent
cbb263e350
commit
187c086270
1 changed files with 5 additions and 3 deletions
|
@ -35,10 +35,12 @@ KResultOr<FlatPtr> Process::sys$module_load(Userspace<const char*> user_path, si
|
||||||
return payload_or_error.error();
|
return payload_or_error.error();
|
||||||
|
|
||||||
auto& payload = *payload_or_error.value();
|
auto& payload = *payload_or_error.value();
|
||||||
auto storage = KBuffer::create_with_size(payload.size());
|
auto storage = KBuffer::try_create_with_size(payload.size());
|
||||||
memcpy(storage.data(), payload.data(), payload.size());
|
if (!storage)
|
||||||
|
return ENOMEM;
|
||||||
|
memcpy(storage->data(), payload.data(), payload.size());
|
||||||
|
|
||||||
auto elf_image = try_make<ELF::Image>(storage.data(), storage.size());
|
auto elf_image = try_make<ELF::Image>(storage->data(), storage->size());
|
||||||
if (!elf_image)
|
if (!elf_image)
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
if (!elf_image->parse())
|
if (!elf_image->parse())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue