[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>
This commit is contained in:
Christopher Li
2005-04-26 12:00:58 -07:00
committed by Linus Torvalds
parent f2a19340ad
commit 812666c8e6
18 changed files with 54 additions and 41 deletions

View File

@ -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);