提交 a961d1f1 编写于 作者: R René Scharfe 提交者: Junio C Hamano

test-subprocess: fix segfault without arguments

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: NRene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 c2df7585
#include "cache.h" #include "cache.h"
#include "run-command.h" #include "run-command.h"
int main(int argc, char **argv) int main(int argc, const char **argv)
{ {
struct child_process cp; struct child_process cp;
int nogit = 0; int nogit = 0;
...@@ -9,12 +9,12 @@ int main(int argc, char **argv) ...@@ -9,12 +9,12 @@ int main(int argc, char **argv)
setup_git_directory_gently(&nogit); setup_git_directory_gently(&nogit);
if (nogit) if (nogit)
die("No git repo found"); die("No git repo found");
if (!strcmp(argv[1], "--setup-work-tree")) { if (argc > 1 && !strcmp(argv[1], "--setup-work-tree")) {
setup_work_tree(); setup_work_tree();
argv++; argv++;
} }
memset(&cp, 0, sizeof(cp)); memset(&cp, 0, sizeof(cp));
cp.git_cmd = 1; cp.git_cmd = 1;
cp.argv = (const char **)argv+1; cp.argv = argv + 1;
return run_command(&cp); return run_command(&cp);
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册