Re: [PATCH 2/2] worktree: reject empty string
René Scharfe <[email protected]> Sun, 2 Aug 2026 11:58:05 +0200
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
On 8/2/26 8:26 AM, Ren=C3=83=C2=A9 Scharfe wrote: > On 7/25/26 1:19 PM, Matthias A=C3=83hauer via GitGitGadget wrote: >> From: =3D?UTF-8?q?Matthias=3D20A=3DC3=3D9Fhauer?=3D <[email protected]> >> >> `git worktree add ""` errors out with the message `BUG: How come '' >> becomes empty after sanitization?`, but not due to a bug in the >> sanitization code. An empty string should remain empty during >> sanitization. Instead reject the argument as invalid user input, >> if it's already empty before sanitization. >> >> Signed-off-by: Matthias A=C3=9Fhauer <[email protected]> >> --- >> builtin/worktree.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/builtin/worktree.c b/builtin/worktree.c >> index d8188035db..113dbf98d3 100644 >> --- a/builtin/worktree.c >> +++ b/builtin/worktree.c >> @@ -496,6 +496,8 @@ static int add_worktree(const char *path, const cha= r *refname, >> die(_("invalid reference: %s"), refname); >> =20 >> name =3D worktree_basename(path, &len); >> + if (!len) >> + die(_("the empty string is not a valid worktree")); >> strbuf_add(&sb, name, path + len - name); >> sanitize_refname_component(sb.buf, &sb_name); >> if (!sb_name.len) >=20 > Hmm, on my machine, with or without this patch: >=20 > $ git worktree add "" > Preparing worktree (new branch '') > fatal: '' is not a valid branch name > hint: See 'git help check-ref-format' > hint: Disable this message with "git config set advice.refSyntax fals= e" This hits the BUG by passing the empty string directly to add_worktree(): $ git worktree add "" HEAD Preparing worktree (detached HEAD a97fcc37c2) BUG: builtin/worktree.c:498: How come '' becomes empty after sanitizati= on? Ren=C3=A9