diff options
author | Christopher Li <git@chrisli.org> | 2005-04-26 12:00:58 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-26 12:00:58 -0700 |
commit | 812666c8e66a21e668c0789d0422aa5a7db54961 (patch) | |
tree | b98a096f4b3c70aac3110f905a1367c23b402cca /sha1_file.c | |
parent | update-cache: remove index lock file on SIGINT (diff) | |
download | tgif-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 'sha1_file.c')
-rw-r--r-- | sha1_file.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sha1_file.c b/sha1_file.c index d98b265bbb..db2880e389 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -73,7 +73,7 @@ char *sha1_file_name(const unsigned char *sha1) if (!base) { char *sha1_file_directory = getenv(DB_ENVIRONMENT) ? : DEFAULT_DB_ENVIRONMENT; int len = strlen(sha1_file_directory); - base = malloc(len + 60); + base = xmalloc(len + 60); memcpy(base, sha1_file_directory, len); memset(base+len, 0, 60); base[len] = '/'; @@ -161,9 +161,7 @@ void * unpack_sha1_file(void *map, unsigned long mapsize, char *type, unsigned l return NULL; bytes = strlen(buffer) + 1; - buf = malloc(*size); - if (!buf) - return NULL; + buf = xmalloc(*size); memcpy(buf, buffer + bytes, stream.total_out - bytes); bytes = stream.total_out - bytes; @@ -271,7 +269,7 @@ int write_sha1_file(char *buf, unsigned long len, const char *type, unsigned cha memset(&stream, 0, sizeof(stream)); deflateInit(&stream, Z_BEST_COMPRESSION); size = deflateBound(&stream, len+hdrlen); - compressed = malloc(size); + compressed = xmalloc(size); /* Compress it */ stream.next_out = compressed; |