diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-02-10 20:35:23 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-02-10 20:35:23 -0800 |
commit | 271cd23527c851ec5dd31a8603a8b25f936eb9e1 (patch) | |
tree | 9a90a3545a77c50ce8d58c10ce4f203b227f225f /t | |
parent | b3310b5e2f576ef807f90eab0e6e178b65bbfb55 (diff) | |
parent | 3443db51a0f2a43061d4badc6a0065672386eae5 (diff) | |
download | git-271cd23527c851ec5dd31a8603a8b25f936eb9e1.tar.gz git-271cd23527c851ec5dd31a8603a8b25f936eb9e1.tar.xz |
Merge branch 'sp/smart-http-content-type-check'
The smart HTTP clients forgot to verify the content-type that comes
back from the server side to make sure that the request is being
handled properly.
* sp/smart-http-content-type-check:
http_request: reset "type" strbuf before adding
t5551: fix expected error output
Verify Content-Type from smart HTTP servers
Diffstat (limited to 't')
-rw-r--r-- | t/lib-httpd.sh | 1 | ||||
-rw-r--r-- | t/lib-httpd/apache.conf | 4 | ||||
-rwxr-xr-x | t/lib-httpd/broken-smart-http.sh | 11 | ||||
-rwxr-xr-x | t/t5551-http-fetch.sh | 5 |
4 files changed, 21 insertions, 0 deletions
diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh index 02f442bfa..895b9258b 100644 --- a/t/lib-httpd.sh +++ b/t/lib-httpd.sh @@ -80,6 +80,7 @@ fi prepare_httpd() { mkdir -p "$HTTPD_DOCUMENT_ROOT_PATH" cp "$TEST_PATH"/passwd "$HTTPD_ROOT_PATH" + cp "$TEST_PATH"/broken-smart-http.sh "$HTTPD_ROOT_PATH" ln -s "$LIB_HTTPD_MODULE_PATH" "$HTTPD_ROOT_PATH/modules" diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf index fe76e84b7..938b4cf80 100644 --- a/t/lib-httpd/apache.conf +++ b/t/lib-httpd/apache.conf @@ -62,9 +62,13 @@ Alias /auth/dumb/ www/auth/dumb/ SetEnv GIT_COMMITTER_EMAIL custom@example.com </LocationMatch> ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1 +ScriptAlias /broken_smart/ broken-smart-http.sh/ <Directory ${GIT_EXEC_PATH}> Options FollowSymlinks </Directory> +<Files broken-smart-http.sh> + Options ExecCGI +</Files> <Files ${GIT_EXEC_PATH}/git-http-backend> Options ExecCGI </Files> diff --git a/t/lib-httpd/broken-smart-http.sh b/t/lib-httpd/broken-smart-http.sh new file mode 100755 index 000000000..f7ebfffa8 --- /dev/null +++ b/t/lib-httpd/broken-smart-http.sh @@ -0,0 +1,11 @@ +#!/bin/sh +printf "Content-Type: text/%s\n" "html" +echo +printf "%s\n" "001e# service=git-upload-pack" +printf "%s" "0000" +printf "%s%c%s%s\n" \ + "00a58681d9f286a48b08f37b3a095330da16689e3693 HEAD" \ + 0 \ + " include-tag multi_ack_detailed multi_ack ofs-delta" \ + " side-band side-band-64k thin-pack no-progress shallow no-done " +printf "%s" "0000" diff --git a/t/t5551-http-fetch.sh b/t/t5551-http-fetch.sh index c5cd2e348..47eb76921 100755 --- a/t/t5551-http-fetch.sh +++ b/t/t5551-http-fetch.sh @@ -157,6 +157,11 @@ test_expect_success 'GIT_SMART_HTTP can disable smart http' ' test_must_fail git fetch) ' +test_expect_success 'invalid Content-Type rejected' ' + test_must_fail git clone $HTTPD_URL/broken_smart/repo.git 2>actual + grep "not valid:" actual +' + test -n "$GIT_TEST_LONG" && test_set_prereq EXPENSIVE test_expect_success EXPENSIVE 'create 50,000 tags in the repo' ' |