mirror of
https://github.com/git/git
synced 2024-08-28 12:09:19 +00:00
![Blake Burkhart](/assets/img/avatar_default.png)
By default, libcurl will follow circular http redirects forever. Let's put a cap on this so that somebody who can trigger an automated fetch of an arbitrary repository (e.g., for CI) cannot convince git to loop infinitely. The value chosen is 20, which is the same default that Firefox uses. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
34 lines
855 B
Bash
Executable file
34 lines
855 B
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='test disabling of git-over-http in clone/fetch'
|
|
. ./test-lib.sh
|
|
. "$TEST_DIRECTORY/lib-proto-disable.sh"
|
|
. "$TEST_DIRECTORY/lib-httpd.sh"
|
|
start_httpd
|
|
|
|
test_expect_success 'create git-accessible repo' '
|
|
bare="$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
|
|
test_commit one &&
|
|
git --bare init "$bare" &&
|
|
git push "$bare" HEAD &&
|
|
git -C "$bare" config http.receivepack true
|
|
'
|
|
|
|
test_proto "smart http" http "$HTTPD_URL/smart/repo.git"
|
|
|
|
test_expect_success 'curl redirects respect whitelist' '
|
|
test_must_fail env GIT_ALLOW_PROTOCOL=http:https \
|
|
git clone "$HTTPD_URL/ftp-redir/repo.git" 2>stderr &&
|
|
{
|
|
test_i18ngrep "ftp.*disabled" stderr ||
|
|
test_i18ngrep "your curl version is too old"
|
|
}
|
|
'
|
|
|
|
test_expect_success 'curl limits redirects' '
|
|
test_must_fail git clone "$HTTPD_URL/loop-redir/smart/repo.git"
|
|
'
|
|
|
|
stop_httpd
|
|
test_done
|