diff options
author | Junio C Hamano <junkio@cox.net> | 2005-12-29 01:31:26 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-12-29 01:33:40 -0800 |
commit | 4e7a2eccc21c9029180585e43b3b941d0bdf8b3b (patch) | |
tree | ebfd2e9032638d9c5c49ccedfa77b4846c2c70c2 | |
parent | 82f9d58a397e18e824eb0e16ee141e92fbd8d20b (diff) | |
download | git-4e7a2eccc21c9029180585e43b3b941d0bdf8b3b.tar.gz |
?alloc: do not return NULL when asked for zero bytes
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | git-compat-util.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h index 0c98c9937d..c353b276f0 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -63,6 +63,8 @@ extern char *gitstrcasestr(const char *haystack, const char *needle); static inline void *xmalloc(size_t size) { void *ret = malloc(size); + if (!ret && !size) + ret = malloc(1); if (!ret) die("Out of memory, malloc failed"); return ret; @@ -71,6 +73,8 @@ static inline void *xmalloc(size_t size) static inline void *xrealloc(void *ptr, size_t size) { void *ret = realloc(ptr, size); + if (!ret && !size) + ret = realloc(ptr, 1); if (!ret) die("Out of memory, realloc failed"); return ret; @@ -79,6 +83,8 @@ static inline void *xrealloc(void *ptr, size_t size) static inline void *xcalloc(size_t nmemb, size_t size) { void *ret = calloc(nmemb, size); + if (!ret && (!nmemb || !size)) + ret = calloc(1, 1); if (!ret) die("Out of memory, calloc failed"); return ret; |