remote-curl: ensure that URLs have a trailing slash
Previously, we blindly assumed that URLs passed to the remote-curl helper did not end with a trailing slash. Use the convenience function end_url_with_slash() from http.[ch] to ensure that URLs have a trailing slash on invocation of the remote-curl helper, and use the URL as one with a trailing slash throughout. It is possible for users to pass a URL with a trailing slash to remote-curl, by, say, setting it in remote.<name>.url in their git config. The resulting requests have an empty path component (//) and may break implementations of the http git protocol. Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
eb9d47cf9b
commit
d8fab07208
@ -38,7 +38,7 @@ cat >exp <<EOF
|
||||
GET /smart/test_repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
|
||||
POST /smart/test_repo.git/git-upload-pack HTTP/1.1 200
|
||||
EOF
|
||||
test_expect_failure 'no empty path components' '
|
||||
test_expect_success 'no empty path components' '
|
||||
# In the URL, add a trailing slash, and see if git appends yet another
|
||||
# slash.
|
||||
cd "$ROOT_PATH" &&
|
||||
|
||||
Reference in New Issue
Block a user