version 1.3, 2010/08/04 21:28:17 |
version 1.4, 2013/08/19 20:21:15 |
|
|
void *ptr; |
void *ptr; |
|
|
if (size == 0) |
if (size == 0) |
errx(2, NULL); |
errx(2, "xmalloc: zero size"); |
ptr = malloc(size); |
ptr = malloc(size); |
if (ptr == NULL) |
if (ptr == NULL) |
errx(2, NULL); |
err(2, NULL); |
return ptr; |
return ptr; |
} |
} |
|
|
|
|
size_t new_size = nmemb * size; |
size_t new_size = nmemb * size; |
|
|
if (new_size == 0) |
if (new_size == 0) |
errx(2, NULL); |
errx(2, "xrealloc: zero size"); |
if (SIZE_MAX / nmemb < size) |
if (SIZE_MAX / nmemb < size) |
errx(2, NULL); |
errx(2, "xrealloc: nmemb * size > SIZE_MAX"); |
if (ptr == NULL) |
if (ptr == NULL) |
new_ptr = malloc(new_size); |
new_ptr = malloc(new_size); |
else |
else |
new_ptr = realloc(ptr, new_size); |
new_ptr = realloc(ptr, new_size); |
if (new_ptr == NULL) |
if (new_ptr == NULL) |
errx(2, NULL); |
err(2, NULL); |
return new_ptr; |
return new_ptr; |
} |
} |
|
|
|
|
xfree(void *ptr) |
xfree(void *ptr) |
{ |
{ |
if (ptr == NULL) |
if (ptr == NULL) |
errx(2, NULL); |
err(2, NULL); |
free(ptr); |
free(ptr); |
} |
} |
|
|
|
|
va_end(ap); |
va_end(ap); |
|
|
if (i < 0 || *ret == NULL) |
if (i < 0 || *ret == NULL) |
errx(2, NULL); |
err(2, NULL); |
|
|
return (i); |
return (i); |
} |
} |