diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-01-25 22:19:17 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-01-25 22:19:17 (GMT) |
commit | c7b1aaf6d6bb5746a98831854313ca8fccea600d (patch) | |
tree | ba09f9c7df3f2eb5a690b9a39be37915aebf4b18 /t | |
parent | 9e409d7e0762ff55c2787b4a106bf80ab2d57471 (diff) | |
parent | 6aed56736b882f94c81293d1646d27d10241349c (diff) | |
download | git-c7b1aaf6d6bb5746a98831854313ca8fccea600d.zip git-c7b1aaf6d6bb5746a98831854313ca8fccea600d.tar.gz git-c7b1aaf6d6bb5746a98831854313ca8fccea600d.tar.bz2 |
Merge branch 'jk/forbid-lf-in-git-url'
Newline characters in the host and path part of git:// URL are
now forbidden.
* jk/forbid-lf-in-git-url:
fsck: reject .gitmodules git:// urls with newlines
git_connect_git(): forbid newlines in host and path
Diffstat (limited to 't')
-rwxr-xr-x | t/t5570-git-daemon.sh | 5 | ||||
-rwxr-xr-x | t/t7416-submodule-dash-url.sh | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/t/t5570-git-daemon.sh b/t/t5570-git-daemon.sh index 8f69a78..0fbb194 100755 --- a/t/t5570-git-daemon.sh +++ b/t/t5570-git-daemon.sh @@ -103,6 +103,11 @@ test_expect_success 'fetch notices corrupt idx' ' ) ' +test_expect_success 'client refuses to ask for repo with newline' ' + test_must_fail git clone "$GIT_DAEMON_URL/repo$LF.git" dst 2>stderr && + test_i18ngrep newline.is.forbidden stderr +' + test_remote_error() { do_export=YesPlease diff --git a/t/t7416-submodule-dash-url.sh b/t/t7416-submodule-dash-url.sh index eec96e0..d21dc8b 100755 --- a/t/t7416-submodule-dash-url.sh +++ b/t/t7416-submodule-dash-url.sh @@ -201,4 +201,19 @@ test_expect_success 'fsck rejects embedded newline in relative url' ' grep gitmodulesUrl err ' +test_expect_success 'fsck rejects embedded newline in git url' ' + git checkout --orphan git-newline && + cat >.gitmodules <<-\EOF && + [submodule "foo"] + url = "git://example.com:1234/repo%0a.git" + EOF + git add .gitmodules && + git commit -m "git url with newline" && + test_when_finished "rm -rf dst" && + git init --bare dst && + git -C dst config transfer.fsckObjects true && + test_must_fail git push dst HEAD 2>err && + grep gitmodulesUrl err +' + test_done |