credential: treat URL with empty scheme as invalid
commite7fab62b736cca3416660636e46f0be8386a5030
authorJonathan Nieder <jrnieder@gmail.com>
Sun, 19 Apr 2020 03:54:57 +0000 (18 20:54 -0700)
committerJonathan Nieder <jrnieder@gmail.com>
Sun, 19 Apr 2020 23:10:58 +0000 (19 16:10 -0700)
treed44b7bee236853dcc7f66a29340df9f4746f1b11
parentc44088ecc4b0722636e0a305f9608d3047197282
credential: treat URL with empty scheme as invalid

Until "credential: refuse to operate when missing host or protocol",
Git's credential handling code interpreted URLs with empty scheme to
mean "give me credentials matching this host for any protocol".

Luckily libcurl does not recognize such URLs (it tries to look for a
protocol named "" and fails). Just in case that changes, let's reject
them within Git as well. This way, credential_from_url is guaranteed to
always produce a "struct credential" with protocol and host set.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
credential.c
t/t5550-http-fetch-dumb.sh
t/t7416-submodule-dash-url.sh