From: Junio C Hamano Date: Mon, 26 Jul 2010 04:51:58 +0000 (-0700) Subject: Merge branch 'maint-1.6.4' into maint-1.6.5 X-Git-Tag: v1.6.5.9~2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/a07b10c8f930e88386d3b7424f25190af554275e?hp=8024d5961bf885245d8febcb189a8c71bb46b29f 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-option --- diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c index 45bead6545..b58531209e 100644 --- a/builtin-rev-parse.c +++ b/builtin-rev-parse.c @@ -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); diff --git a/setup.c b/setup.c index 4272ec0ef2..a614f125c3 100644 --- a/setup.c +++ b/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)) diff --git a/t/t1502-rev-parse-parseopt.sh b/t/t1502-rev-parse-parseopt.sh index e504058062..3b612c67be 100755 --- a/t/t1502-rev-parse-parseopt.sh +++ b/t/t1502-rev-parse-parseopt.sh @@ -79,4 +79,22 @@ test_expect_success 'test --parseopt --keep-dashdash' ' test_cmp expect output ' +cat >expect <output && + test_cmp expect output +' + +cat > expect <output && + test_cmp expect output +' + test_done