# [PATCH] git-rm: fix possible segfault

2 messages from 2006-06-09 to 2006-06-09. Participants: SungHyun Nam, Junio C Hamano.
Thread: https://gitlist.dev/t/4441

## SungHyun Nam, 2006-06-09 02:10

Subject: [PATCH] git-rm: fix possible segfault
Message-ID: <20060609111044.451c94b1@namsh.wimo.co.kr>
URL: https://gitlist.dev/e/20060609111044.451c94b1%40namsh.wimo.co.kr

```

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;
-- 
1.4.0.rc1.gfd7e

```

## Junio C Hamano, 2006-06-09 04:15

Subject: Re: [PATCH] git-rm: fix possible segfault
Message-ID: <7vverbnevo.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vverbnevo.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20060609111044.451c94b1@namsh.wimo.co.kr>

```
SungHyun Nam <goweol@gmail.com> writes:

> 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.

```
