version 1.17, 2006/03/19 18:51:19 |
version 1.18, 2006/03/25 00:05:41 |
|
|
} |
} |
|
|
void * |
void * |
|
xcalloc(size_t nmemb, size_t size) |
|
{ |
|
void *ptr; |
|
|
|
if (nmemb && size && SIZE_T_MAX / nmemb < size) |
|
fatal("xcalloc: nmemb * size > SIZE_T_MAX"); |
|
if (size == 0 || nmemb == 0) |
|
fatal("xcalloc: zero size"); |
|
ptr = calloc(nmemb, size); |
|
if (ptr == NULL) |
|
fatal("xcalloc: out of memory (allocating %lu bytes)", |
|
(u_long)(size * nmemb)); |
|
return ptr; |
|
} |
|
|
|
void * |
xrealloc(void *ptr, size_t new_size) |
xrealloc(void *ptr, size_t new_size) |
{ |
{ |
void *new_ptr; |
void *new_ptr; |
|
|
cp = xmalloc(len); |
cp = xmalloc(len); |
strlcpy(cp, str, len); |
strlcpy(cp, str, len); |
return cp; |
return cp; |
|
} |
|
|
|
int |
|
xasprintf(char **ret, const char *fmt, ...) |
|
{ |
|
va_list ap; |
|
int i; |
|
|
|
va_start(ap, fmt); |
|
i = vasprintf(ret, fmt, ap); |
|
va_end(ap); |
|
|
|
if (i < 0 || *ret == NULL) |
|
fatal("xasprintf: could not allocate memory"); |
|
|
|
return (i); |
} |
} |