diff --git a/mempool.cc b/mempool.cc index f445b436b0627bb5fb9e6f088053bf152875d2f6..b15555767c5d11dd228c0d2e7120c2895cd01cf6 100644 --- a/mempool.cc +++ b/mempool.cc @@ -6,6 +6,7 @@ #include <new> #include <boost/utility.hpp> #include <string.h> +#include "libc/libc.hh" namespace memory { @@ -271,6 +272,9 @@ extern "C" { void* malloc(size_t size) { + if ((ssize_t)size < 0) + return libc_error_ptr<void *>(ENOMEM); + if (size <= memory::pool::max_object_size) { size = std::max(size, memory::pool::min_object_size); unsigned n = ilog2_roundup(size);