Keep "git --git-dir" from causing a bus error.

The option checking code for --git-dir had an off by 1 error that
would cause it to access uninitialized memory if it was the last
argument.  This causes it to display an error and display the usage
string instead.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Brian Gernhardt 2006-12-22 08:56:25 -05:00 коммит произвёл Junio C Hamano
Родитель 4b1552238e
Коммит c321f00d09
1 изменённых файлов: 4 добавлений и 2 удалений

6
git.c
Просмотреть файл

@ -59,8 +59,10 @@ static int handle_options(const char*** argv, int* argc)
} else if (!strcmp(cmd, "-p") || !strcmp(cmd, "--paginate")) {
setup_pager();
} else if (!strcmp(cmd, "--git-dir")) {
if (*argc < 1)
return -1;
if (*argc < 2) {
fprintf(stderr, "No directory given for --git-dir.\n" );
usage(git_usage_string);
}
setenv("GIT_DIR", (*argv)[1], 1);
(*argv)++;
(*argc)--;