diff options
| author | Junio C Hamano <gitster@pobox.com> | 2009-04-18 13:39:52 -0700 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2009-04-18 13:39:52 -0700 | 
| commit | d890d3f99635de7963effd1436148112ef7a52b7 (patch) | |
| tree | 71138c5cf3cdd476164ebb0229c0f1eacc907588 | |
| parent | 43be7a782e08489062a3b8130cbb7ffbe8807191 (diff) | |
| parent | 62854410449ec407a363e4bb1dc980a75aa1699d (diff) | |
| download | git-d890d3f99635de7963effd1436148112ef7a52b7.tar.gz | |
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
  doc/git-daemon: add missing arguments to options
  init: Do not segfault on big GIT_TEMPLATE_DIR environment variable
| -rw-r--r-- | Documentation/git-daemon.txt | 16 | ||||
| -rw-r--r-- | builtin-init-db.c | 4 | ||||
| -rwxr-xr-x | t/t0001-init.sh | 9 | 
3 files changed, 20 insertions, 9 deletions
| diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt index 36f00aed67..d5596672a5 100644 --- a/Documentation/git-daemon.txt +++ b/Documentation/git-daemon.txt @@ -48,7 +48,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 @@ -81,8 +81,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. @@ -90,15 +90,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.  --max-connections::  	Maximum number of concurrent clients, defaults to 32.  Set it to @@ -150,7 +150,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:: diff --git a/builtin-init-db.c b/builtin-init-db.c index 8199e5d4d5..bfdfc7b411 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 | 
