diff mbox series

[1/1] quote: quote space

Message ID 20240319095212.42332-2-hanyang.tony@bytedance.com (mailing list archive)
State New, archived
Headers show
Series quote: quote space | expand

Commit Message

Han Young March 19, 2024, 9:52 a.m. UTC
`git_header_name()` in apply.c uses space as separator between the preimage and postimage pathname, filename with space in them normally won't cause apply to fail because `git_header_name()` isn't using simple split. However, if the pathname has a directory whose name ending with space will lead to `skip_tree_prefix()` mistake the path as an absolute path, and git am fails with

	error: git diff header lacks filename information when removing 1 leading pathname component

The simplest fix to this edge case is to quote every path with space, even if the space is not at directory name end.
---
 quote.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kristoffer Haugsbakk March 19, 2024, 9:59 a.m. UTC | #1
On Tue, Mar 19, 2024, at 10:52, Han Young wrote:
> `git_header_name()` in apply.c uses space as separator between the
> preimage and postimage pathname, filename with space in them normally
> won't cause apply to fail because `git_header_name()` isn't using
> simple split. However, if the pathname has a directory whose name
> ending with space will lead to `skip_tree_prefix()` mistake the path as
> an absolute path, and git am fails with
>
> 	error: git diff header lacks filename information when removing 1
> leading pathname component
>
> The simplest fix to this edge case is to quote every path with space,
> even if the space is not at directory name end.

Missing signoff? See SubmittingPatches section “sign-off”.

Also the commit message should be flowed to 72 columns. See
`.editorconfig`. (My client has flowed this reply automatically but 
that’s not what the original email looks like.)

> ---
>  quote.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/quote.c b/quote.c
> index 3c05194496..ecbbaed061 100644
> --- a/quote.c
> +++ b/quote.c
> @@ -222,7 +222,7 @@ static signed char const cq_lookup[256] = {
>  	/* 0x00 */   1,   1,   1,   1,   1,   1,   1, 'a',
>  	/* 0x08 */ 'b', 't', 'n', 'v', 'f', 'r',   1,   1,
>  	/* 0x10 */ X16(1),
> -	/* 0x20 */  -1,  -1, '"',  -1,  -1,  -1,  -1,  -1,
> +	/* 0x20 */  1,  -1, '"',  -1,  -1,  -1,  -1,  -1,
>  	/* 0x28 */ X16(-1), X16(-1), X16(-1),
>  	/* 0x58 */  -1,  -1,  -1,  -1,'\\',  -1,  -1,  -1,
>  	/* 0x60 */ X16(-1), X8(-1),
> --
> 2.44.0
diff mbox series

Patch

diff --git a/quote.c b/quote.c
index 3c05194496..ecbbaed061 100644
--- a/quote.c
+++ b/quote.c
@@ -222,7 +222,7 @@  static signed char const cq_lookup[256] = {
 	/* 0x00 */   1,   1,   1,   1,   1,   1,   1, 'a',
 	/* 0x08 */ 'b', 't', 'n', 'v', 'f', 'r',   1,   1,
 	/* 0x10 */ X16(1),
-	/* 0x20 */  -1,  -1, '"',  -1,  -1,  -1,  -1,  -1,
+	/* 0x20 */  1,  -1, '"',  -1,  -1,  -1,  -1,  -1,
 	/* 0x28 */ X16(-1), X16(-1), X16(-1),
 	/* 0x58 */  -1,  -1,  -1,  -1,'\\',  -1,  -1,  -1,
 	/* 0x60 */ X16(-1), X8(-1),