version 1.1, 2014/04/23 21:06:41 |
version 1.4, 2014/12/11 09:05:01 |
|
|
#ifdef HAVE_CONFIG_H |
|
#include "config.h" |
#include "config.h" |
#endif |
|
|
|
#ifdef HAVE_REALLOCARRAY |
#if HAVE_REALLOCARRAY |
|
|
int dummy; |
int dummy; |
|
|
#else |
#else |
|
|
|
/* $Id$ */ |
/* $OpenBSD$ */ |
/* $OpenBSD$ */ |
/* |
/* |
* Copyright (c) 2008 Otto Moerbeek <otto@drijf.net> |
* Copyright (c) 2008 Otto Moerbeek <otto@drijf.net> |
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
*/ |
*/ |
|
|
#include <sys/types.h> |
#include <sys/types.h> |
#include <errno.h> |
#include <errno.h> |
#include <stdint.h> |
#include <stdint.h> |
#include <stdlib.h> |
#include <stdlib.h> |
|
|
#define MUL_NO_OVERFLOW (1UL << (sizeof(size_t) * 4)) |
/* |
|
* This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX |
|
* if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW |
|
*/ |
|
#define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) |
|
|
void * |
void * |
reallocarray(void *optr, size_t nmemb, size_t size) |
reallocarray(void *optr, size_t nmemb, size_t size) |