diff options
author | brian m. carlson <sandals@crustytoothpaste.net> | 2017-10-15 22:06:52 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-10-16 11:05:50 +0900 |
commit | 6ee18216d8d9ca8f76b01282b36bdf590a64d8fc (patch) | |
tree | b29f5705e7051ef1e4e6841765517894b5184bf0 | |
parent | ae077771b09fac4d663e3f8c039318a97eb3a15b (diff) | |
download | git-6ee18216d8d9ca8f76b01282b36bdf590a64d8fc.tar.gz |
refs: prevent accidental NULL dereference in write_pseudoref
Several of the refs functions take NULL to indicate that the ref is not
to be updated. If refs_update_ref were called with a NULL new object
ID, we could pass that NULL pointer to write_pseudoref, which would then
segfault when it dereferenced it. Instead, simply return successfully,
since if we don't want to update the pseudoref, there's nothing to do.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | refs.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -583,6 +583,9 @@ static int write_pseudoref(const char *pseudoref, const struct object_id *oid, struct strbuf buf = STRBUF_INIT; int ret = -1; + if (!oid) + return 0; + strbuf_addf(&buf, "%s\n", oid_to_hex(oid)); filename = git_path("%s", pseudoref); |