Skip to content

Commit 007f7f6

Browse files
committed
Merge branch 'es/blame-commit-info-fix' into maint
"git blame" died, trying to free an uninitialized piece of memory. * es/blame-commit-info-fix: builtin/blame: destroy initialized commit_info only
2 parents 3336757 + e600592 commit 007f7f6

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

builtin/blame.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2085,7 +2085,6 @@ static void find_alignment(struct scoreboard *sb, int *option)
20852085

20862086
for (e = sb->ent; e; e = e->next) {
20872087
struct origin *suspect = e->suspect;
2088-
struct commit_info ci;
20892088
int num;
20902089

20912090
if (compute_auto_abbrev)
@@ -2096,6 +2095,7 @@ static void find_alignment(struct scoreboard *sb, int *option)
20962095
if (longest_file < num)
20972096
longest_file = num;
20982097
if (!(suspect->commit->object.flags & METAINFO_SHOWN)) {
2098+
struct commit_info ci;
20992099
suspect->commit->object.flags |= METAINFO_SHOWN;
21002100
get_commit_info(suspect->commit, &ci, 1);
21012101
if (*option & OUTPUT_SHOW_EMAIL)
@@ -2104,6 +2104,7 @@ static void find_alignment(struct scoreboard *sb, int *option)
21042104
num = utf8_strwidth(ci.author.buf);
21052105
if (longest_author < num)
21062106
longest_author = num;
2107+
commit_info_destroy(&ci);
21072108
}
21082109
num = e->s_lno + e->num_lines;
21092110
if (longest_src_lines < num)
@@ -2113,8 +2114,6 @@ static void find_alignment(struct scoreboard *sb, int *option)
21132114
longest_dst_lines = num;
21142115
if (largest_score < ent_score(sb, e))
21152116
largest_score = ent_score(sb, e);
2116-
2117-
commit_info_destroy(&ci);
21182117
}
21192118
max_orig_digits = decimal_width(longest_src_lines);
21202119
max_digits = decimal_width(longest_dst_lines);

0 commit comments

Comments
 (0)