Subject: [PATCH] test-subprocess: fix segfault without arguments

From: René Scharfe <[email-masked]>
Date: Tue, 10 Apr 2012 21:07:34 +0200

Check if we even have a parameter before checking its value.  Running
this command without any arguments may not make a lot of sense, but
reacting with a segmentation fault is unduly harsh.

While we're at it, avoid casting argv by declaring it const right away.

Signed-off-by: Rene Scharfe <[email-masked]>
---
 test-subprocess.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/test-subprocess.c b/test-subprocess.c
index 8926bc5..f2d4c0d 100644
--- a/test-subprocess.c
+++ b/test-subprocess.c
@@ -1,7 +1,7 @@
 #include "cache.h"
 #include "run-command.h"
 
-int main(int argc, char **argv)
+int main(int argc, const char **argv)
 {
 	struct child_process cp;
 	int nogit = 0;
@@ -9,12 +9,12 @@ int main(int argc, char **argv)
 	setup_git_directory_gently(&nogit);
 	if (nogit)
 		die("No git repo found");
-	if (!strcmp(argv[1], "--setup-work-tree")) {
+	if (argc > 1 && !strcmp(argv[1], "--setup-work-tree")) {
 		setup_work_tree();
 		argv++;
 	}
 	memset(&cp, 0, sizeof(cp));
 	cp.git_cmd = 1;
-	cp.argv = (const char **)argv+1;
+	cp.argv = argv + 1;
 	return run_command(&cp);
 }
-- 
1.7.10