diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-20 20:11:53 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-20 20:11:53 (GMT) |
commit | cfe96b38fddc114c0bc98bbeab51b0f18fd102c3 (patch) | |
tree | 257f93be22b4abcf5626c6d5f47268ace4dbec87 | |
parent | daea6fca3564e880dfe29bfab65fd5b608e9491d (diff) | |
parent | fd2014d42b3a4fb865d99e9a7943caa08082cada (diff) | |
download | git-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.c | 3 | ||||
-rw-r--r-- | bundle.c | 11 | ||||
-rw-r--r-- | connect.c | 1 |
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; } @@ -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); } @@ -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"); |