aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-06-25 13:22:41 -0700
committerJunio C Hamano <gitster@pobox.com>2018-06-25 13:22:41 -0700
commit02f27d0dd0a9695fa8337c3ddd97a2b5ad0aec73 (patch)
treecc19ad364df8e03d5d9861520e1c50448a2b98a1
parent90fa1c5d6c00e44f4c901da0cf4015db916eca03 (diff)
parentf40f3c16cd3b0b5e696e62c08c84c8f527eaaf0e (diff)
downloadgit-02f27d0dd0a9695fa8337c3ddd97a2b5ad0aec73.tar.xz
Merge branch 'sb/plug-misc-leaks'
Misc leak plugging. * sb/plug-misc-leaks: sequencer.c: plug mem leak in git_sequencer_config sequencer.c: plug leaks in do_pick_commit submodule--helper: plug mem leak in print_default_remote refs/packed-backend.c: close fd of empty file
-rw-r--r--builtin/submodule--helper.c3
-rw-r--r--refs/packed-backend.c1
-rw-r--r--sequencer.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index c9c2f0e102..20ae9191ca 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -55,7 +55,7 @@ static char *get_default_remote(void)
static int print_default_remote(int argc, const char **argv, const char *prefix)
{
- const char *remote;
+ char *remote;
if (argc != 1)
die(_("submodule--helper print-default-remote takes no arguments"));
@@ -64,6 +64,7 @@ static int print_default_remote(int argc, const char **argv, const char *prefix)
if (remote)
printf("%s\n", remote);
+ free(remote);
return 0;
}
diff --git a/refs/packed-backend.c b/refs/packed-backend.c
index cec3fb9e00..d447a731da 100644
--- a/refs/packed-backend.c
+++ b/refs/packed-backend.c
@@ -499,6 +499,7 @@ static int load_contents(struct snapshot *snapshot)
size = xsize_t(st.st_size);
if (!size) {
+ close(fd);
return 0;
} else if (mmap_strategy == MMAP_NONE || size <= SMALL_FILE_SIZE) {
snapshot->buf = xmalloc(size);
diff --git a/sequencer.c b/sequencer.c
index ee1f7b2df7..5354d4d51e 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -176,6 +176,7 @@ static int git_sequencer_config(const char *k, const char *v, void *cb)
warning(_("invalid commit message cleanup mode '%s'"),
s);
+ free((char *)s);
return status;
}
@@ -1774,7 +1775,8 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
res = do_recursive_merge(base, next, base_label, next_label,
&head, &msgbuf, opts);
if (res < 0)
- return res;
+ goto leave;
+
res |= write_message(msgbuf.buf, msgbuf.len,
git_path_merge_msg(), 0);
} else {