> diff --git a/commit-graph.c b/commit-graph.c > index d2b291aca2..a33600c584 100644 > --- a/commit-graph.c > +++ b/commit-graph.c > @@ -841,6 +841,7 @@ void write_commit_graph(const char *obj_dir, > oids.nr =3D 0; > } > =20 > +#define VERIFY_COMMIT_GRAPH_ERROR_HASH 2 > static int verify_commit_graph_error; > =20 > static void graph_report(const char *fmt, ...) > @@ -860,7 +861,9 @@ static void graph_report(const char *fmt, ...) > int verify_commit_graph(struct commit_graph *g) > { > uint32_t i, cur_fanout_pos =3D 0; > - struct object_id prev_oid, cur_oid; > + struct object_id prev_oid, cur_oid, checksum; > + struct hashfile *f; > + int devnull; > =20 > if (!g) { > graph_report("no commit-graph file loaded"); > @@ -879,6 +882,15 @@ int verify_commit_graph(struct commit_graph *g) > if (verify_commit_graph_error) > return verify_commit_graph_error; > =20 > + devnull =3D open("/dev/null", O_WRONLY); > + f =3D hashfd(devnull, NULL); > + hashwrite(f, g->data, g->data_len - g->hash_len); > + finalize_hashfile(f, checksum.hash, CSUM_CLOSE); > + if (hashcmp(checksum.hash, g->data + g->data_len - g->hash_len)) { > + graph_report(_("the commit-graph file has incorrect checksum and is likely corrupt")); This error message is translated ... > diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh > index 240aef6add..2680a2ebff 100755 > --- a/t/t5318-commit-graph.sh > +++ b/t/t5318-commit-graph.sh > @@ -388,4 +389,9 @@ test_expect_success 'detect incorrect parent for octopu= > s merge' ' > "invalid parent" > ' > =20 > +test_expect_success 'detect invalid checksum hash' ' > + corrupt_graph_and_verify $GRAPH_BYTE_FOOTER "\00" \ > + "incorrect checksum" ... but here in 'corrupt_graph_and_verify' you look for "incorrect checksum" with plain 'grep' (as opposed to 'test_i18ngrep', which won't find that string in a GETTEXT_POISON build, and ultimately causes the test to fail.