From 32d1776b1341c17b99da862e80ddf151a5b558fe Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Sat, 18 Apr 2009 16:14:02 +0200 Subject: [PATCH 1/2] init: Do not segfault on big GIT_TEMPLATE_DIR environment variable Signed-off-by: Frank Lichtenheld Signed-off-by: Junio C Hamano --- builtin-init-db.c | 4 +++- t/t0001-init.sh | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/builtin-init-db.c b/builtin-init-db.c index d30c3fe2ca..6cc945d507 100644 --- a/builtin-init-db.c +++ b/builtin-init-db.c @@ -122,8 +122,10 @@ static void copy_templates(const char *template_dir) template_dir = system_path(DEFAULT_GIT_TEMPLATE_DIR); if (!template_dir[0]) return; + template_len = strlen(template_dir); + if (PATH_MAX <= (template_len+strlen("/config"))) + die("insanely long template path %s", template_dir); strcpy(template_path, template_dir); - template_len = strlen(template_path); if (template_path[template_len-1] != '/') { template_path[template_len++] = '/'; template_path[template_len] = 0; diff --git a/t/t0001-init.sh b/t/t0001-init.sh index 5ac0a273a9..e3d846420d 100755 --- a/t/t0001-init.sh +++ b/t/t0001-init.sh @@ -199,4 +199,13 @@ test_expect_success 'init honors global core.sharedRepository' ' x`git config -f shared-honor-global/.git/config core.sharedRepository` ' +test_expect_success 'init rejects insanely long --template' ' + ( + insane=$(printf "x%09999dx" 1) && + mkdir test && + cd test && + test_must_fail git init --template=$insane + ) +' + test_done From 62854410449ec407a363e4bb1dc980a75aa1699d Mon Sep 17 00:00:00 2001 From: Markus Heidelberg Date: Sat, 18 Apr 2009 11:46:06 +0200 Subject: [PATCH 2/2] doc/git-daemon: add missing arguments to options Also fix some spellings and typos. Signed-off-by: Markus Heidelberg Signed-off-by: Junio C Hamano --- Documentation/git-daemon.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt index 4ba4b75c11..2172e1fedc 100644 --- a/Documentation/git-daemon.txt +++ b/Documentation/git-daemon.txt @@ -47,7 +47,7 @@ OPTIONS 'git-daemon' will refuse to start when this option is enabled and no whitelist is specified. ---base-path:: +--base-path=path:: Remap all the path requests as relative to the given path. This is sort of "GIT root" - if you run 'git-daemon' with '--base-path=/srv/git' on example.com, then if you later try to pull @@ -80,8 +80,8 @@ OPTIONS Incompatible with --port, --listen, --user and --group options. --listen=host_or_ipaddr:: - Listen on an a specific IP address or hostname. IP addresses can - be either an IPv4 address or an IPV6 address if supported. If IPv6 + Listen on a specific IP address or hostname. IP addresses can + be either an IPv4 address or an IPv6 address if supported. If IPv6 is not supported, then --listen=hostname is also not supported and --listen must be given an IPv4 address. Incompatible with '--inetd' option. @@ -89,15 +89,15 @@ OPTIONS --port=n:: Listen on an alternative port. Incompatible with '--inetd' option. ---init-timeout:: +--init-timeout=n:: Timeout between the moment the connection is established and the client request is received (typically a rather low value, since that should be basically immediate). ---timeout:: +--timeout=n:: Timeout for specific client sub-requests. This includes the time - it takes for the server to process the sub-request and time spent - waiting for next client's request. + it takes for the server to process the sub-request and the time spent + waiting for the next client's request. --syslog:: Log to syslog instead of stderr. Note that this option does not imply @@ -145,7 +145,7 @@ the facility of inet daemon to achieve the same before spawning Enable/disable the service site-wide per default. Note that a service disabled site-wide can still be enabled per repository if it is marked overridable and the - repository enables the service with an configuration + repository enables the service with a configuration item. --allow-override=service::