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