From: Junio C Hamano Date: Wed, 8 May 2019 15:37:25 +0000 (+0900) Subject: Merge branch 'tb/unexpected' X-Git-Tag: v2.22.0-rc0~24 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/ea2dab1abbf14bfa7dd5299c9bb86d0f70aae019 Merge branch 'tb/unexpected' Code tightening against a "wrong" object appearing where an object of a different type is expected, instead of blindly assuming that the connection between objects are correctly made. * tb/unexpected: rev-list: detect broken root trees rev-list: let traversal die when --missing is not in use get_commit_tree(): return NULL for broken tree list-objects.c: handle unexpected non-tree entries list-objects.c: handle unexpected non-blob entries t: introduce tests for unexpected object types t: move 'hex2oct' into test-lib-functions.sh --- ea2dab1abbf14bfa7dd5299c9bb86d0f70aae019 diff --cc commit.c index a9e74647dc,e2cde566a9..8fa1883c61 --- a/commit.c +++ b/commit.c @@@ -351,10 -345,10 +351,10 @@@ struct tree *repo_get_commit_tree(struc if (commit->maybe_tree || !commit->object.parsed) return commit->maybe_tree; - if (commit->graph_pos == COMMIT_NOT_FROM_GRAPH) - BUG("commit has NULL tree, but was not loaded from commit-graph"); + if (commit->graph_pos != COMMIT_NOT_FROM_GRAPH) - return get_commit_tree_in_graph(the_repository, commit); ++ return get_commit_tree_in_graph(r, commit); - return get_commit_tree_in_graph(r, commit); + return NULL; } struct object_id *get_commit_tree_oid(const struct commit *commit)