Merge branch 'jk/fix-remote-curl-url-wo-proto'
authorJunio C Hamano <gitster@pobox.com>
Thu, 15 Sep 2016 21:11:15 +0000 (14:11 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 15 Sep 2016 21:11:15 +0000 (14:11 -0700)
"git fetch http::/site/path" did not die correctly and segfaulted
instead.

* jk/fix-remote-curl-url-wo-proto:
remote-curl: handle URLs without protocol

http.c
t/t5550-http-fetch-dumb.sh
diff --git a/http.c b/http.c
index cd40b012f89397db67e851101ab38c2c57fd18c9..edce47ca75fbff3b0c8a6f15a881b7471f55fa83 100644 (file)
--- a/http.c
+++ b/http.c
@@ -723,7 +723,7 @@ static CURL *get_curl_handle(void)
         * precedence here, as in CURL.
         */
        if (!curl_http_proxy) {
-               if (!strcmp(http_auth.protocol, "https")) {
+               if (http_auth.protocol && !strcmp(http_auth.protocol, "https")) {
                        var_override(&curl_http_proxy, getenv("HTTPS_PROXY"));
                        var_override(&curl_http_proxy, getenv("https_proxy"));
                } else {
index dc9b87d6b41efc472eac1a2b768bf56c01caf4d1..7641417b4a3848fa9d065572e5a8248fea5c7574 100755 (executable)
@@ -299,5 +299,13 @@ test_expect_success 'git client does not send an empty Accept-Language' '
        ! grep "^=> Send header: Accept-Language:" stderr
 '
 
+test_expect_success 'remote-http complains cleanly about malformed urls' '
+       # do not actually issue "list" or other commands, as we do not
+       # want to rely on what curl would actually do with such a broken
+       # URL. This is just about making sure we do not segfault during
+       # initialization.
+       test_must_fail git remote-http http::/example.com/repo.git
+'
+
 stop_httpd
 test_done