Skip to content

Commit f722ecf

Browse files
committed
Merge branch 'jk/misc-resolve-ref-unsafe-fixes' into pu
* jk/misc-resolve-ref-unsafe-fixes: worktree: handle broken symrefs in find_shared_symref() log: handle broken HEAD in decoration check remote: handle broken symrefs test-ref-store: avoid passing NULL to printf
2 parents 7c4b930 + dbd2b55 commit f722ecf

File tree

4 files changed

+5
-4
lines changed

4 files changed

+5
-4
lines changed

builtin/remote.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ static int read_remote_branches(const char *refname,
565565
item = string_list_append(rename->remote_branches, xstrdup(refname));
566566
symref = resolve_ref_unsafe(refname, RESOLVE_REF_READING,
567567
NULL, &flag);
568-
if (flag & REF_ISSYMREF)
568+
if (symref && (flag & REF_ISSYMREF))
569569
item->util = xstrdup(symref);
570570
else
571571
item->util = NULL;

log-tree.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ static const struct name_decoration *current_pointed_by_HEAD(const struct name_d
198198

199199
/* Now resolve and find the matching current branch */
200200
branch_name = resolve_ref_unsafe("HEAD", 0, NULL, &rru_flags);
201-
if (!(rru_flags & REF_ISSYMREF))
201+
if (!branch_name || !(rru_flags & REF_ISSYMREF))
202202
return NULL;
203203

204204
if (!starts_with(branch_name, "refs/"))

t/helper/test-ref-store.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ static int cmd_resolve_ref(struct ref_store *refs, const char **argv)
135135

136136
ref = refs_resolve_ref_unsafe(refs, refname, resolve_flags,
137137
&oid, &flags);
138-
printf("%s %s 0x%x\n", oid_to_hex(&oid), ref, flags);
138+
printf("%s %s 0x%x\n", oid_to_hex(&oid), ref ? ref : "(null)", flags);
139139
return ref ? 0 : 1;
140140
}
141141

worktree.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,8 @@ const struct worktree *find_shared_symref(const char *symref,
414414
refs = get_worktree_ref_store(wt);
415415
symref_target = refs_resolve_ref_unsafe(refs, symref, 0,
416416
NULL, &flags);
417-
if ((flags & REF_ISSYMREF) && !strcmp(symref_target, target)) {
417+
if ((flags & REF_ISSYMREF) &&
418+
symref_target && !strcmp(symref_target, target)) {
418419
existing = wt;
419420
break;
420421
}

0 commit comments

Comments
 (0)