Windows: Disambiguate DOS style paths from SSH URLs.
If on Windows a path is specified as C:/path, then this is also a valid SSH URL. To disambiguate between the two interpretations we take an URL that looks like a path with a drive letter as a local URL. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
This commit is contained in:
parent
6ed807f843
commit
be501813d2
@ -529,7 +529,7 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
|
||||
end = host;
|
||||
|
||||
path = strchr(end, c);
|
||||
if (path) {
|
||||
if (path && !has_dos_drive_prefix(end)) {
|
||||
if (c == ':') {
|
||||
protocol = PROTO_SSH;
|
||||
*path++ = '\0';
|
||||
|
@ -709,7 +709,8 @@ static int is_local(const char *url)
|
||||
{
|
||||
const char *colon = strchr(url, ':');
|
||||
const char *slash = strchr(url, '/');
|
||||
return !colon || (slash && slash < colon);
|
||||
return !colon || (slash && slash < colon) ||
|
||||
has_dos_drive_prefix(url);
|
||||
}
|
||||
|
||||
static int is_file(const char *url)
|
||||
|
Loading…
Reference in New Issue
Block a user