From 6702716292058a507ff41df2880cc12154accced Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Wed, 8 Feb 2017 13:19:01 +0530 Subject: build: fix minor warnings mostly uninitialized use of variables. check return values from function calls. Signed-off-by: Prasanna Kumar Kalever --- utils/utils.c | 22 ++++++++++++++++++++++ utils/utils.h | 17 ++++++++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) (limited to 'utils') 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) { diff --git a/utils/utils.h b/utils/utils.h index f9763eb..2323418 100644 --- a/utils/utils.h +++ b/utils/utils.h @@ -16,6 +16,7 @@ # include # include +# include # include # include # include @@ -122,13 +123,20 @@ # define CALLOC(x) \ calloc(1, x) +# define GB_ALLOC(ptr) \ + gbAlloc(&(ptr), sizeof(*(ptr)), \ + __FILE__, __FUNCTION__, __LINE__) + # define GB_ALLOC_N(ptr, count) \ gbAllocN(&(ptr), sizeof(*(ptr)), (count), \ __FILE__, __FUNCTION__, __LINE__) \ -# define GB_ALLOC(ptr) \ - gbAlloc(&(ptr), sizeof(*(ptr)), \ - __FILE__, __FUNCTION__, __LINE__) +# define xalloc_oversized(n, s) \ + ((size_t) (sizeof(ptrdiff_t) <= sizeof(size_t) ? -1 : -2) / (s) < (n)) + +# define GB_REALLOC_N(ptr, count) \ + gbReallocN(&(ptr), sizeof(*(ptr)), (count), \ + __FILE__, __FUNCTION__, __LINE__) # define GB_STRDUP(dst, src) \ gbStrdup(&(dst), src, \ @@ -291,6 +299,9 @@ int gbAlloc(void *ptrptr, size_t size, int gbAllocN(void *ptrptr, size_t size, size_t count, const char *filename, const char *funcname, size_t linenr); +int gbReallocN(void *ptrptr, size_t size, size_t count, + const char *filename, const char *funcname, size_t linenr); + int gbStrdup(char **dest, const char *src, const char *filename, const char *funcname, size_t linenr); -- cgit