From: René Scharfe Date: Sat, 15 Jul 2017 17:18:51 +0000 (+0200) Subject: tree-diff: don't access hash of NULL object_id pointer X-Git-Tag: v2.15.0-rc0~212^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fb04dced9c6510176f06953d2cd6a239703401f1;p=thirdparty%2Fgit.git tree-diff: don't access hash of NULL object_id pointer The object_id pointers can be NULL for invalid entries. Don't try to dereference them and pass NULL along to fill_tree_descriptor() instead, which handles them just fine. Found with Clang's UBSan. Signed-off-by: Rene Scharfe Signed-off-by: Junio C Hamano --- diff --git a/tree-diff.c b/tree-diff.c index 467e381724..7f7ddda4ea 100644 --- a/tree-diff.c +++ b/tree-diff.c @@ -422,8 +422,9 @@ static struct combine_diff_path *ll_diff_tree_paths( * diff_tree_oid(parent, commit) ) */ for (i = 0; i < nparent; ++i) - tptree[i] = fill_tree_descriptor(&tp[i], parents_oid[i]->hash); - ttree = fill_tree_descriptor(&t, oid->hash); + tptree[i] = fill_tree_descriptor(&tp[i], + parents_oid[i] ? parents_oid[i]->hash : NULL); + ttree = fill_tree_descriptor(&t, oid ? oid->hash : NULL); /* Enable recursion indefinitely */ opt->pathspec.recursive = DIFF_OPT_TST(opt, RECURSIVE);