Skip to content

Commit cc9c9a0

Browse files
peffgitster
authored andcommitted
commit-graph: verify swapped zero/non-zero generation cases
In verify_one_commit_graph(), we have code that complains when a commit is found with a generation number of zero, and then later with a non-zero number. It works like this: 1. When we see an entry with generation zero, we set the generation_zero flag to GENERATION_ZERO_EXISTS. 2. When we later see an entry with a non-zero generation, we complain if the flag is GENERATION_ZERO_EXISTS. There's a matching GENERATION_NUMBER_EXISTS value, which in theory would be used to find the case that we see the entries in the opposite order: 1. When we see an entry with a non-zero generation, we set the generation_zero flag to GENERATION_NUMBER_EXISTS. 2. When we later see an entry with a zero generation, we complain if the flag is GENERATION_NUMBER_EXISTS. But that doesn't work; step 2 is implemented, but there is no step 1. We never use NUMBER_EXISTS at all, and Coverity rightly complains that step 2 is dead code. We can fix that by implementing that step 1. Signed-off-by: Jeff King <[email protected]> Signed-off-by: Taylor Blau <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 868c991 commit cc9c9a0

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

commit-graph.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2686,9 +2686,12 @@ static int verify_one_commit_graph(struct repository *r,
26862686
graph_report(_("commit-graph has generation number zero for commit %s, but non-zero elsewhere"),
26872687
oid_to_hex(&cur_oid));
26882688
generation_zero = GENERATION_ZERO_EXISTS;
2689-
} else if (generation_zero == GENERATION_ZERO_EXISTS)
2690-
graph_report(_("commit-graph has non-zero generation number for commit %s, but zero elsewhere"),
2691-
oid_to_hex(&cur_oid));
2689+
} else {
2690+
if (generation_zero == GENERATION_ZERO_EXISTS)
2691+
graph_report(_("commit-graph has non-zero generation number for commit %s, but zero elsewhere"),
2692+
oid_to_hex(&cur_oid));
2693+
generation_zero = GENERATION_NUMBER_EXISTS;
2694+
}
26922695

26932696
if (generation_zero == GENERATION_ZERO_EXISTS)
26942697
continue;

0 commit comments

Comments
 (0)