diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-08-20 12:53:09 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-08-20 12:53:09 -0700 |
commit | 16bfbe6352e90b87de26effe5ce120ab74ebafc7 (patch) | |
tree | 6525fdf55a6da9e426516546e7b652c1458b971f /read-cache.c | |
parent | 316fa401e1c953ffc80533aaf6839817595cdd77 (diff) | |
parent | b6b56aceb85fe05dc681ac7ee1249e6b6e26e957 (diff) | |
download | git-16bfbe6352e90b87de26effe5ce120ab74ebafc7.tar.gz |
Merge branch 'jn/maint-plug-leak' into maint
* jn/maint-plug-leak:
write-tree: Avoid leak when index refers to an invalid object
read-tree: stop leaking tree objects
core: Stop leaking ondisk_cache_entrys
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/read-cache.c b/read-cache.c index f1f789b7b8..1f42473e80 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1516,6 +1516,7 @@ static int ce_write_entry(git_SHA_CTX *c, int fd, struct cache_entry *ce) int size = ondisk_ce_size(ce); struct ondisk_cache_entry *ondisk = xcalloc(1, size); char *name; + int result; ondisk->ctime.sec = htonl(ce->ce_ctime.sec); ondisk->mtime.sec = htonl(ce->ce_mtime.sec); @@ -1539,7 +1540,9 @@ static int ce_write_entry(git_SHA_CTX *c, int fd, struct cache_entry *ce) name = ondisk->name; memcpy(name, ce->name, ce_namelen(ce)); - return ce_write(c, fd, ondisk, size); + result = ce_write(c, fd, ondisk, size); + free(ondisk); + return result; } int write_index(struct index_state *istate, int newfd) |