summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-03-20 20:11:53 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-03-20 20:11:53 (GMT)
commitcfe96b38fddc114c0bc98bbeab51b0f18fd102c3 (patch)
tree257f93be22b4abcf5626c6d5f47268ace4dbec87
parentdaea6fca3564e880dfe29bfab65fd5b608e9491d (diff)
parentfd2014d42b3a4fb865d99e9a7943caa08082cada (diff)
downloadgit-cfe96b38fddc114c0bc98bbeab51b0f18fd102c3.zip
git-cfe96b38fddc114c0bc98bbeab51b0f18fd102c3.tar.gz
git-cfe96b38fddc114c0bc98bbeab51b0f18fd102c3.tar.bz2
Merge branch 'sb/leaks'
Code cleanup. * sb/leaks: builtin/help.c: fix memory leak bundle.c: fix memory leak connect.c: do not leak "conn" after showing diagnosis
-rw-r--r--builtin/help.c3
-rw-r--r--bundle.c11
-rw-r--r--connect.c1
3 files changed, 8 insertions, 7 deletions
diff --git a/builtin/help.c b/builtin/help.c
index 2ae8a1e..3422e73 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -456,7 +456,7 @@ static void list_common_guides_help(void)
int cmd_help(int argc, const char **argv, const char *prefix)
{
int nongit;
- const char *alias;
+ char *alias;
enum help_format parsed_help_format;
argc = parse_options(argc, argv, prefix, builtin_help_options,
@@ -499,6 +499,7 @@ int cmd_help(int argc, const char **argv, const char *prefix)
alias = alias_lookup(argv[0]);
if (alias && !is_git_command(argv[0])) {
printf_ln(_("`git %s' is aliased to `%s'"), argv[0], alias);
+ free(alias);
return 0;
}
diff --git a/bundle.c b/bundle.c
index 2e2dbd5..f732c92 100644
--- a/bundle.c
+++ b/bundle.c
@@ -334,7 +334,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
if (e->item->flags & UNINTERESTING)
continue;
if (dwim_ref(e->name, strlen(e->name), sha1, &ref) != 1)
- continue;
+ goto skip_write_ref;
if (read_ref_full(e->name, RESOLVE_REF_READING, sha1, &flag))
flag = 0;
display_ref = (flag & REF_ISSYMREF) ? e->name : ref;
@@ -342,7 +342,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
if (e->item->type == OBJ_TAG &&
!is_tag_in_date_range(e->item, revs)) {
e->item->flags |= UNINTERESTING;
- continue;
+ goto skip_write_ref;
}
/*
@@ -357,8 +357,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
if (!(e->item->flags & SHOWN) && e->item->type == OBJ_COMMIT) {
warning(_("ref '%s' is excluded by the rev-list options"),
e->name);
- free(ref);
- continue;
+ goto skip_write_ref;
}
/*
* If you run "git bundle create bndl v1.0..v2.0", the
@@ -388,8 +387,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
obj->flags |= SHOWN;
add_pending_object(revs, obj, e->name);
}
- free(ref);
- continue;
+ goto skip_write_ref;
}
ref_count++;
@@ -397,6 +395,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
write_or_die(bundle_fd, " ", 1);
write_or_die(bundle_fd, display_ref, strlen(display_ref));
write_or_die(bundle_fd, "\n", 1);
+ skip_write_ref:
free(ref);
}
diff --git a/connect.c b/connect.c
index ce0e121..6090211 100644
--- a/connect.c
+++ b/connect.c
@@ -739,6 +739,7 @@ struct child_process *git_connect(int fd[2], const char *url,
free(hostandport);
free(path);
+ free(conn);
return NULL;
} else {
ssh = getenv("GIT_SSH_COMMAND");