threads / patch / 30199

patchtest-subprocess: fix segfault without arguments

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

## tl;dr

One message between Apr 10, 2012 and Apr 10, 2012. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

René Scharfe· Apr 10, 2012, 19:07 UTC · lore

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 <rene.scharfe@lsrfire.ath.cx>
---
 test-subprocess.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Show changes to test-subprocess.c +3 −3
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

← back to recent threads