diff --git a/AK/kmalloc.h b/AK/kmalloc.h index 95e886f9cd..fedfcf7b8f 100644 --- a/AK/kmalloc.h +++ b/AK/kmalloc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2018-2021, Andreas Kling * Copyright (c) 2021, Daniel Bertalan * * SPDX-License-Identifier: BSD-2-Clause @@ -7,6 +7,8 @@ #pragma once +#include + #if defined(KERNEL) # include #else @@ -47,3 +49,17 @@ inline size_t malloc_good_size(size_t size) { return size; } #endif using std::nothrow; + +inline void* kmalloc_array(Checked a, Checked b) +{ + auto size = a * b; + VERIFY(!size.has_overflow()); + return kmalloc(size.value()); +} + +inline void* kmalloc_array(Checked a, Checked b, Checked c) +{ + auto size = a * b * c; + VERIFY(!size.has_overflow()); + return kmalloc(size.value()); +}