aboutsummaryrefslogtreecommitdiff
path: root/update-cache.c
diff options
context:
space:
mode:
authorChristopher Li <git@chrisli.org>2005-04-26 12:00:58 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-26 12:00:58 -0700
commit812666c8e66a21e668c0789d0422aa5a7db54961 (patch)
treeb98a096f4b3c70aac3110f905a1367c23b402cca /update-cache.c
parentf2a19340ada1188e278d5b198d3466ed7411e2d4 (diff)
downloadgit-812666c8e66a21e668c0789d0422aa5a7db54961.tar.gz
git-812666c8e66a21e668c0789d0422aa5a7db54961.tar.xz
[PATCH] introduce xmalloc and xrealloc
Introduce xmalloc and xrealloc to die gracefully with a descriptive message when out of memory, rather than taking a SIGSEGV. Signed-off-by: Christopher Li<chrislgit@chrisli.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'update-cache.c')
-rw-r--r--update-cache.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/update-cache.c b/update-cache.c
index e759c647a..16e1bb9ae 100644
--- a/update-cache.c
+++ b/update-cache.c
@@ -36,8 +36,8 @@ static int index_fd(unsigned char *sha1, int fd, struct stat *st)
z_stream stream;
unsigned long size = st->st_size;
int max_out_bytes = size + 200;
- void *out = malloc(max_out_bytes);
- void *metadata = malloc(200);
+ void *out = xmalloc(max_out_bytes);
+ void *metadata = xmalloc(200);
int metadata_size;
void *in;
SHA_CTX c;
@@ -123,7 +123,7 @@ static int add_file_to_cache(char *path)
}
namelen = strlen(path);
size = cache_entry_size(namelen);
- ce = malloc(size);
+ ce = xmalloc(size);
memset(ce, 0, size);
memcpy(ce->name, path, namelen);
fill_stat_cache_info(ce, &st);
@@ -206,7 +206,7 @@ static struct cache_entry *refresh_entry(struct cache_entry *ce)
return ERR_PTR(-EINVAL);
size = ce_size(ce);
- updated = malloc(size);
+ updated = xmalloc(size);
memcpy(updated, ce, size);
fill_stat_cache_info(updated, &st);
return updated;
@@ -282,7 +282,7 @@ static int add_cacheinfo(char *arg1, char *arg2, char *arg3)
len = strlen(arg3);
size = cache_entry_size(len);
- ce = malloc(size);
+ ce = xmalloc(size);
memset(ce, 0, size);
memcpy(ce->sha1, sha1, 20);