From 187c086270006318397e6fce7dceb1f0f9e0b591 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Sun, 1 Aug 2021 04:01:05 -0700 Subject: [PATCH] Kernel: Handle OOM from KBuffer creation in sys$module() --- Kernel/Syscalls/module.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Kernel/Syscalls/module.cpp b/Kernel/Syscalls/module.cpp index 5ab722de77..ad52c2b539 100644 --- a/Kernel/Syscalls/module.cpp +++ b/Kernel/Syscalls/module.cpp @@ -35,10 +35,12 @@ KResultOr Process::sys$module_load(Userspace user_path, si return payload_or_error.error(); auto& payload = *payload_or_error.value(); - auto storage = KBuffer::create_with_size(payload.size()); - memcpy(storage.data(), payload.data(), payload.size()); + auto storage = KBuffer::try_create_with_size(payload.size()); + if (!storage) + return ENOMEM; + memcpy(storage->data(), payload.data(), payload.size()); - auto elf_image = try_make(storage.data(), storage.size()); + auto elf_image = try_make(storage->data(), storage->size()); if (!elf_image) return ENOMEM; if (!elf_image->parse())