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 | refs: convert update_ref and refs_update_ref to use struct object_id (diff) | |
| download | git-6ee18216d8d9ca8f76b01282b36bdf590a64d8fc.tar.gz git-6ee18216d8d9ca8f76b01282b36bdf590a64d8fc.zip | |
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); |
