diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-06-05 12:00:05 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-06-05 12:00:05 -0700 |
commit | bdf204f28db5cdf5201dded37c5b40f3f432e0cf (patch) | |
tree | 751977812225bd5ba1a84a8974d4d8c4b86c9344 | |
parent | d9c82fa7a75ae617718f195bb5f5ff5c904f2687 (diff) | |
parent | 1154aa42159383c3339567f6385c21a615c8b93a (diff) | |
download | git-bdf204f28db5cdf5201dded37c5b40f3f432e0cf.tar.gz git-bdf204f28db5cdf5201dded37c5b40f3f432e0cf.tar.xz |
Merge branch 'jc/plug-fmt-merge-msg-leak' into maint
* jc/plug-fmt-merge-msg-leak:
fmt-merge-msg: plug small leak of commit buffer
-rw-r--r-- | builtin/fmt-merge-msg.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c index 1d962dc56..05f4c2631 100644 --- a/builtin/fmt-merge-msg.c +++ b/builtin/fmt-merge-msg.c @@ -223,16 +223,14 @@ static void add_branch_desc(struct strbuf *out, const char *name) #define util_as_integral(elem) ((intptr_t)((elem)->util)) -static void record_person(int which, struct string_list *people, - struct commit *commit) +static void record_person_from_buf(int which, struct string_list *people, + const char *buffer) { - const char *buffer; char *name_buf, *name, *name_end; struct string_list_item *elem; const char *field; field = (which == 'a') ? "\nauthor " : "\ncommitter "; - buffer = get_commit_buffer(commit, NULL); name = strstr(buffer, field); if (!name) return; @@ -245,7 +243,6 @@ static void record_person(int which, struct string_list *people, if (name_end < name) return; name_buf = xmemdupz(name, name_end - name + 1); - unuse_commit_buffer(commit, buffer); elem = string_list_lookup(people, name_buf); if (!elem) { @@ -256,6 +253,15 @@ static void record_person(int which, struct string_list *people, free(name_buf); } + +static void record_person(int which, struct string_list *people, + struct commit *commit) +{ + const char *buffer = get_commit_buffer(commit, NULL); + record_person_from_buf(which, people, buffer); + unuse_commit_buffer(commit, buffer); +} + static int cmp_string_list_util_as_integral(const void *a_, const void *b_) { const struct string_list_item *a = a_, *b = b_; |