diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-05-13 18:42:05 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-05-14 13:39:10 +0200 |
commit | 9f9ec7da570bf1468eafe611023627c9a2b0b5d2 (patch) | |
tree | 08321d1435ca5ac73a6b981e07feca2e84278725 | |
parent | c60042fe09dec5b220d65ad34c674b1fd9346e12 (diff) |
urlapi: require a non-zero host name length when parsing URL
Updated test 1560 to verify.
Closes #3880
-rw-r--r-- | lib/urlapi.c | 2 | ||||
-rw-r--r-- | tests/libtest/lib1560.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/urlapi.c b/lib/urlapi.c index c66c07f0a..0d05f4d92 100644 --- a/lib/urlapi.c +++ b/lib/urlapi.c @@ -636,6 +636,8 @@ static CURLUcode hostname_check(struct Curl_URL *u, char *hostname) /* hostname with bad content */ return CURLUE_MALFORMED_INPUT; } + if(!hostname[0]) + return CURLUE_NO_HOST; return CURLUE_OK; } diff --git a/tests/libtest/lib1560.c b/tests/libtest/lib1560.c index 5ad7134d0..a18d56a8e 100644 --- a/tests/libtest/lib1560.c +++ b/tests/libtest/lib1560.c @@ -140,6 +140,9 @@ static struct testcase get_parts_list[] ={ "file | [11] | [12] | [13] | [14] | [15] | C:\\programs\\foo | [16] | [17]", CURLU_DEFAULT_SCHEME, 0, CURLUE_OK}, #endif + /* URL without host name */ + {"http://a:b@/x", "", + CURLU_DEFAULT_SCHEME, 0, CURLUE_NO_HOST}, {"boing:80", "https | [11] | [12] | [13] | boing | 80 | / | [16] | [17]", CURLU_DEFAULT_SCHEME, 0, CURLUE_OK}, |