summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2021-12-03 15:56:58 +0100
committerDaniel Stenberg <daniel@haxx.se>2021-12-03 22:58:41 +0100
commit92d1aee8b16bb5aa416368cb54ded732cc39c407 (patch)
tree5aae76f0c95442018560049f665760ec2a032a7c
parentf67b4d37b7df7772f8a0b0a0e05935161f314cc7 (diff)
downloadcurl-92d1aee8b16bb5aa416368cb54ded732cc39c407.tar.gz
urlapi: accept port number zero
This is a regression since 7.62.0 (fb30ac5a2d). Updated test 1560 accordingly Reported-by: Brad Fitzpatrick Fixes #8090 Closes #8091
-rw-r--r--lib/urlapi.c4
-rw-r--r--tests/libtest/lib1560.c6
2 files changed, 6 insertions, 4 deletions
diff --git a/lib/urlapi.c b/lib/urlapi.c
index 372ffe50a..d88db2978 100644
--- a/lib/urlapi.c
+++ b/lib/urlapi.c
@@ -605,9 +605,7 @@ UNITTEST CURLUcode Curl_parse_port(struct Curl_URL *u, char *hostname,
port = strtol(portptr + 1, &rest, 10); /* Port number must be decimal */
- if((port <= 0) || (port > 0xffff))
- /* Single unix standard says port numbers are 16 bits long, but we don't
- treat port zero as OK. */
+ if(port > 0xffff)
return CURLUE_BAD_PORT_NUMBER;
if(rest[0])
diff --git a/tests/libtest/lib1560.c b/tests/libtest/lib1560.c
index f09454c45..7a4e12b78 100644
--- a/tests/libtest/lib1560.c
+++ b/tests/libtest/lib1560.c
@@ -308,9 +308,13 @@ static const struct testcase get_parts_list[] ={
{"https://example.com:65536",
"",
CURLU_DEFAULT_SCHEME, 0, CURLUE_BAD_PORT_NUMBER},
- {"https://example.com:0#moo",
+ {"https://example.com:-1#moo",
"",
CURLU_DEFAULT_SCHEME, 0, CURLUE_BAD_PORT_NUMBER},
+ {"https://example.com:0#moo",
+ "https | [11] | [12] | [13] | example.com | 0 | / | "
+ "[16] | moo",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
{"https://example.com:01#moo",
"https | [11] | [12] | [13] | example.com | 1 | / | "
"[16] | moo",