Merge branch 'maint-1.6.4' into maint-1.6.5
* maint-1.6.4: Check size of path buffer before writing into it rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-optionmaint
commit
a07b10c8f9
|
@ -397,8 +397,8 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
|
|||
ALLOC_GROW(opts, onb + 1, osz);
|
||||
memset(opts + onb, 0, sizeof(opts[onb]));
|
||||
argc = parse_options(argc, argv, prefix, opts, usage,
|
||||
keep_dashdash ? PARSE_OPT_KEEP_DASHDASH : 0 |
|
||||
stop_at_non_option ? PARSE_OPT_STOP_AT_NON_OPTION : 0);
|
||||
(keep_dashdash ? PARSE_OPT_KEEP_DASHDASH : 0) |
|
||||
(stop_at_non_option ? PARSE_OPT_STOP_AT_NON_OPTION : 0));
|
||||
|
||||
strbuf_addf(&parsed, " --");
|
||||
sq_quote_argv(&parsed, argv, 0);
|
||||
|
|
2
setup.c
2
setup.c
|
@ -156,6 +156,8 @@ static int is_git_directory(const char *suspect)
|
|||
char path[PATH_MAX];
|
||||
size_t len = strlen(suspect);
|
||||
|
||||
if (PATH_MAX <= len + strlen("/objects"))
|
||||
die("Too long path: %.*s", 60, suspect);
|
||||
strcpy(path, suspect);
|
||||
if (getenv(DB_ENVIRONMENT)) {
|
||||
if (access(getenv(DB_ENVIRONMENT), X_OK))
|
||||
|
|
|
@ -79,4 +79,22 @@ test_expect_success 'test --parseopt --keep-dashdash' '
|
|||
test_cmp expect output
|
||||
'
|
||||
|
||||
cat >expect <<EOF
|
||||
set -- --foo -- '--' 'arg' '--spam=ham'
|
||||
EOF
|
||||
|
||||
test_expect_success 'test --parseopt --keep-dashdash --stop-at-non-option with --' '
|
||||
git rev-parse --parseopt --keep-dashdash --stop-at-non-option -- --foo -- arg --spam=ham <optionspec >output &&
|
||||
test_cmp expect output
|
||||
'
|
||||
|
||||
cat > expect <<EOF
|
||||
set -- --foo -- 'arg' '--spam=ham'
|
||||
EOF
|
||||
|
||||
test_expect_success 'test --parseopt --keep-dashdash --stop-at-non-option without --' '
|
||||
git rev-parse --parseopt --keep-dashdash --stop-at-non-option -- --foo arg --spam=ham <optionspec >output &&
|
||||
test_cmp expect output
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Loading…
Reference in New Issue