1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "base/process/memory.h" 6 7namespace base { 8 9// Defined in memory_mac.mm for Mac. 10#if !defined(OS_MACOSX) 11 12bool UncheckedCalloc(size_t num_items, size_t size, void** result) { 13 const size_t alloc_size = num_items * size; 14 15 // Overflow check 16 if (size && ((alloc_size / size) != num_items)) { 17 *result = NULL; 18 return false; 19 } 20 21 if (!UncheckedMalloc(alloc_size, result)) 22 return false; 23 24 memset(*result, 0, alloc_size); 25 return true; 26} 27 28#endif 29 30} 31