diff options
author | René Scharfe <l.s.r@web.de> | 2017-07-15 19:18:51 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-07-17 23:49:36 +0200 |
commit | fb04dced9c6510176f06953d2cd6a239703401f1 (patch) | |
tree | f76301d811e1c428a8a84336184441edda5fc9f9 /tree-diff.c | |
parent | diff: rename diff_fill_sha1_info to diff_fill_oid_info (diff) | |
download | git-fb04dced9c6510176f06953d2cd6a239703401f1.tar.xz git-fb04dced9c6510176f06953d2cd6a239703401f1.zip |
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 <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'tree-diff.c')
-rw-r--r-- | tree-diff.c | 5 |
1 files changed, 3 insertions, 2 deletions
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); |