Re: [PATCH 2/2] worktree: reject empty string

RenĂ© Scharfe <[email protected]> Sun, 2 Aug 2026 08:26:39 +0200
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
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]>
>=20
> `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.
>=20
> Signed-off-by: Matthias A=C3=9Fhauer <[email protected]>
> ---
>  builtin/worktree.c | 2 ++
>  1 file changed, 2 insertions(+)
>=20
> 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);
> =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)

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=C3=A9