Created
December 11, 2018 08:26
-
-
Save danielgustafsson/01b2b7df1f82030374129d5ffbad7dc2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/lib/urlapi.c b/lib/urlapi.c | |
index 5cbda6a98..e68748818 100644 | |
--- a/lib/urlapi.c | |
+++ b/lib/urlapi.c | |
@@ -534,6 +534,14 @@ UNITTEST CURLUcode Curl_parse_port(struct Curl_URL *u, char *hostname) | |
long port; | |
char portbuf[7]; | |
+ /* Browser behavior adaptation. If there's a colon with no digits after, | |
+ just cut off the name there which makes us ignore the colon and just | |
+ use the default port. Firefox, Chrome and Safari all do that. */ | |
+ if(!portptr[1]) { | |
+ *portptr = '\0'; | |
+ return CURLUE_OK; | |
+ } | |
+ | |
if(!ISDIGIT(portptr[1])) | |
return CURLUE_BAD_PORT_NUMBER; | |
@@ -547,22 +555,14 @@ UNITTEST CURLUcode Curl_parse_port(struct Curl_URL *u, char *hostname) | |
if(rest[0]) | |
return CURLUE_BAD_PORT_NUMBER; | |
- if(rest != &portptr[1]) { | |
- *portptr++ = '\0'; /* cut off the name there */ | |
- *rest = 0; | |
- /* generate a new to get rid of leading zeroes etc */ | |
- msnprintf(portbuf, sizeof(portbuf), "%ld", port); | |
- u->portnum = port; | |
- u->port = strdup(portbuf); | |
- if(!u->port) | |
- return CURLUE_OUT_OF_MEMORY; | |
- } | |
- else { | |
- /* Browser behavior adaptation. If there's a colon with no digits after, | |
- just cut off the name there which makes us ignore the colon and just | |
- use the default port. Firefox and Chrome both do that. */ | |
- *portptr = '\0'; | |
- } | |
+ *portptr++ = '\0'; /* cut off the name there */ | |
+ *rest = 0; | |
+ /* generate a new port number string to get rid of leading zeroes etc */ | |
+ msnprintf(portbuf, sizeof(portbuf), "%ld", port); | |
+ u->portnum = port; | |
+ u->port = strdup(portbuf); | |
+ if(!u->port) | |
+ return CURLUE_OUT_OF_MEMORY; | |
} | |
return CURLUE_OK; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment