aboutsummaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
authorVictoria Dye <vdye@github.com>2024-01-18 01:55:18 +0000
committerJunio C Hamano <gitster@pobox.com>2024-01-19 10:15:41 -0800
commit8430b438f628f2f0df08622a550e750158167f28 (patch)
treeb41eb05e4e1a087148ef6aa883215feac80d74f3 /t
parentt7450: test submodule urls (diff)
downloadgit-8430b438f628f2f0df08622a550e750158167f28.tar.gz
git-8430b438f628f2f0df08622a550e750158167f28.zip
submodule-config.c: strengthen URL fsck check
Update the validation of "curl URL" submodule URLs (i.e. those that specify an "http[s]" or "ftp[s]" protocol) in 'check_submodule_url()' to catch more invalid URLs. The existing validation using 'credential_from_url_gently()' parses certain URLs incorrectly, leading to invalid submodule URLs passing 'git fsck' checks. Conversely, 'url_normalize()' - used to validate remote URLs in 'remote_get()' - correctly identifies the invalid URLs missed by 'credential_from_url_gently()'. To catch more invalid cases, replace 'credential_from_url_gently()' with 'url_normalize()' followed by a 'url_decode()' and a check for newlines (mirroring 'check_url_component()' in the 'credential_from_url_gently()' validation). Signed-off-by: Victoria Dye <vdye@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-xt/t7450-bad-git-dotfiles.sh11
1 files changed, 1 insertions, 10 deletions
diff --git a/t/t7450-bad-git-dotfiles.sh b/t/t7450-bad-git-dotfiles.sh
index c73b1c92ec..46d4fb0354 100755
--- a/t/t7450-bad-git-dotfiles.sh
+++ b/t/t7450-bad-git-dotfiles.sh
@@ -63,6 +63,7 @@ test_expect_success 'check urls' '
./%0ahost=example.com/foo.git
https://one.example.com/evil?%0ahost=two.example.com
https:///example.com/foo.git
+ http://example.com:test/foo.git
https::example.com/foo.git
http:::example.com/foo.git
EOF
@@ -70,16 +71,6 @@ test_expect_success 'check urls' '
test_cmp expect actual
'
-# NEEDSWORK: the URL checked here is not valid (and will not work as a remote if
-# a user attempts to clone it), but the fsck check passes.
-test_expect_failure 'url check misses invalid cases' '
- test-tool submodule check-url >actual <<-\EOF &&
- http://example.com:test/foo.git
- EOF
-
- test_must_be_empty actual
-'
-
test_expect_success 'create innocent subrepo' '
git init innocent &&
git -C innocent commit --allow-empty -m foo