summaryrefslogtreecommitdiff
path: root/builtin/receive-pack.c
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2017-07-15 18:33:54 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-07-17 21:51:32 (GMT)
commitf730944a49b2a210bb10520700c0a3f6c49bc020 (patch)
treedcb47674f2e675b1963ce0b3277fc686a72b7a7f /builtin/receive-pack.c
parent3ea6b85a871aa41eaa66a2919451ad12d492c355 (diff)
downloadgit-f730944a49b2a210bb10520700c0a3f6c49bc020.zip
git-f730944a49b2a210bb10520700c0a3f6c49bc020.tar.gz
git-f730944a49b2a210bb10520700c0a3f6c49bc020.tar.bz2
receive-pack: don't access hash of NULL object_id pointer
We set old_oid to NULL if we found out that it's a corrupt reference. In that case don't try to access the hash member and pass NULL to ref_transaction_delete() instead. 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 'builtin/receive-pack.c')
-rw-r--r--builtin/receive-pack.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index b1706a5..f589e8a 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -1137,7 +1137,7 @@ static const char *update(struct command *cmd, struct shallow_info *si)
}
if (ref_transaction_delete(transaction,
namespaced_name,
- old_oid->hash,
+ old_oid ? old_oid->hash : NULL,
0, "push", &err)) {
rp_error("%s", err.buf);
strbuf_release(&err);