From 02a01135a4d93c1e0029242f0889a59e6fe6beca Mon Sep 17 00:00:00 2001 From: David Chisnall Date: Wed, 28 Mar 2012 09:49:53 +0100 Subject: Correctly handle the case where 0 is passed to operator new. --- src/memory.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/memory.cc b/src/memory.cc index fec861a..cc879e0 100644 --- a/src/memory.cc +++ b/src/memory.cc @@ -74,6 +74,10 @@ namespace std __attribute__((weak)) void* operator new(size_t size) { + if (0 == size) + { + size = 1; + } void * mem = malloc(size); while (0 == mem) { @@ -95,6 +99,10 @@ void* operator new(size_t size) __attribute__((weak)) void* operator new(size_t size, const std::nothrow_t &) throw() { + if (0 == size) + { + size = 1; + } void *mem = malloc(size); while (0 == mem) { -- cgit v1.2.3