Re: [PATCH 2/2] worktree: reject empty string
- From
René Scharfe <l.s.r@web.de>
- Date
- Aug 2, 2026, 06:26 UTC
- Message-ID
- <f6b7af1a-29fd-4bec-b819-34b7962180fb@web.de>
- In-Reply-To
- <ec682d75f3a7848dc36f82cf36bbdff6fd283e2d.1784978348.git.gitgitgadget@gmail.com>
On 7/25/26 1:19 PM, Matthias AÃhauer via GitGitGadget wrote:
Show 26 quoted lines
> From: =?UTF-8?q?Matthias=20A=C3=9Fhauer?= <mha1993@live.de>
>
> `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ßhauer <mha1993@live.de>
> ---
> 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 char *refname,
> die(_("invalid reference: %s"), refname);
>
> name = 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)Hmm, on my machine, with or without this patch:
$ 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 false"
and
$ 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 false"
This error message is produced by the command 'git branch "" HEAD' issued using run_command() in add(), just before the the add_worktree() call, which is then skipped.
René