diff --git a/refs.c b/refs.c index c30f4c36be..36439fdb54 100644 --- a/refs.c +++ b/refs.c @@ -1396,9 +1396,12 @@ const char *refs_resolve_ref_unsafe(struct ref_store *refs, unsigned char *sha1, int *flags) { static struct strbuf sb_refname = STRBUF_INIT; + struct object_id unused_oid; int unused_flags; int symref_count; + if (!sha1) + sha1 = unused_oid.hash; if (!flags) flags = &unused_flags; diff --git a/refs.h b/refs.h index 78a26400b6..996d4ea54d 100644 --- a/refs.h +++ b/refs.h @@ -10,10 +10,11 @@ struct worktree; /* * Resolve a reference, recursively following symbolic refererences. * - * Store the referred-to object's name in sha1 and return the name of - * the non-symbolic reference that ultimately pointed at it. The - * return value, if not NULL, is a pointer into either a static buffer - * or the input ref. + * Return the name of the non-symbolic reference that ultimately pointed + * at the resolved object name. The return value, if not NULL, is a + * pointer into either a static buffer or the input ref. + * + * If sha1 is non-NULL, store the referred-to object's name in it. * * If the reference cannot be resolved to an object, the behavior * depends on the RESOLVE_REF_READING flag: