threads / patch / 4441

patchgit-rm: fix possible segfault

Subject: [PATCH] git-rm: fix possible segfault

## tl;dr

2 messages between Jun 9, 2006 and Jun 9, 2006. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

SungHyun Nam· Jun 9, 2006, 02:10 UTC · lore
Signed-off-by: SungHyun Nam <goweol@gmail.com>
---
 builtin-rm.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
Show changes to builtin-rm.c +3 −0
diff --git a/builtin-rm.c b/builtin-rm.c
index ef2f8b5..aeda415 100644
--- a/builtin-rm.c
+++ b/builtin-rm.c
@@ -83,6 +83,9 @@ int cmd_rm(int argc, const char **argv, 
 		}
 		die(builtin_rm_usage);
 	}
+	if (i >= argc)
+		usage(builtin_rm_usage);
+
 	pathspec = get_pathspec(prefix, argv + i);
 
 	seen = NULL;
-- 
1.4.0.rc1.gfd7e
Junio C Hamano· Jun 9, 2006, 04:15 UTC · re: SungHyun Nam · lore

Re: [PATCH] git-rm: fix possible segfault

SungHyun Nam <goweol@gmail.com> writes:
Show 20 quoted lines
> Signed-off-by: SungHyun Nam <goweol@gmail.com>
>
> ---
>  builtin-rm.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/builtin-rm.c b/builtin-rm.c
> index ef2f8b5..aeda415 100644
> --- a/builtin-rm.c
> +++ b/builtin-rm.c
> @@ -83,6 +83,9 @@ int cmd_rm(int argc, const char **argv, 
>  		}
>  		die(builtin_rm_usage);
>  	}
> +	if (i >= argc)
> +		usage(builtin_rm_usage);
> +
>  	pathspec = get_pathspec(prefix, argv + i);
>  
>  	seen = NULL;

Thanks. The real problem is it uses pathspec even when no paths is specified, but "git rm" without any arguments would remove everything under the sun with the normal pathspec semantics, so refusing to run when no paths are specified like you did makes sense.

There is a more grave bug in git-rm (I do not use this command myself at all, so I did not spot it earlier). I'll push out a fix soonish.

← back to recent threads