aboutsummaryrefslogtreecommitdiff
path: root/git-compat-util.h
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-01-05 20:54:42 -0800
committerJunio C Hamano <junkio@cox.net>2006-01-05 20:54:42 -0800
commit5df466c507ee2dd81c2e9002c3fedf3536cde0dc (patch)
tree92fff315690007bbbdaa9116570a8a49b01f5420 /git-compat-util.h
parent58e3fb40f7ca1c28f9105c15166884f80bb22e55 (diff)
parent92e802c6ccb96d1b5e8561b0a136d43d82253293 (diff)
downloadgit-5df466c507ee2dd81c2e9002c3fedf3536cde0dc.tar.gz
git-5df466c507ee2dd81c2e9002c3fedf3536cde0dc.tar.xz
Merge fixes up to GIT 1.0.7
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-compat-util.h')
-rw-r--r--git-compat-util.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h
index 0c98c9937..c353b276f 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;