diff options
Diffstat (limited to 'utils/utils.c')
-rw-r--r-- | utils/utils.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/utils/utils.c b/utils/utils.c index a43a347..3441e54 100644 --- a/utils/utils.c +++ b/utils/utils.c @@ -145,6 +145,28 @@ gbAllocN(void *ptrptr, size_t size, size_t count, } +int +gbReallocN(void *ptrptr, size_t size, size_t count, + const char *filename, const char *funcname, size_t linenr) +{ + void *tmp; + + + if (xalloc_oversized(count, size)) { + errno = ENOMEM; + return -1; + } + tmp = realloc(*(void**)ptrptr, size * count); + if (!tmp && (size * count)) { + errno = ENOMEM; + return -1; + } + *(void**)ptrptr = tmp; + + return 0; +} + + void gbFree(void *ptrptr) { |