diff options
author | Daniel Stenberg <daniel@haxx.se> | 2014-05-05 13:47:52 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-05-06 08:44:11 +0200 |
commit | 5de8d84098db1bd24e7fffefbe14e81f2a05995a (patch) | |
tree | 4f5081b2250f41e512a930ba742b52e97244bd9a /lib/url.c | |
parent | 47d760714f2f44b7edc8f1ef4d5518286e402af9 (diff) | |
download | curl-5de8d84098db1bd24e7fffefbe14e81f2a05995a.tar.gz |
fix_hostname: strip off a single trailing dot from host name
Primarily for SNI, we need the host name without a trailing dot.
"https://www.example.com." resolves fine but fails on SNI unless the dot
is removed.
Reported-by: Leon Winter
Bug: http://curl.haxx.se/mail/lib-2014-04/0161.html
Diffstat (limited to 'lib/url.c')
-rw-r--r-- | lib/url.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -3502,9 +3502,17 @@ static void fix_hostname(struct SessionHandle *data, #elif defined(CURL_DISABLE_VERBOSE_STRINGS) (void)conn; #endif + size_t len; /* set the name we use to display the host name */ host->dispname = host->name; + + len = strlen(host->name); + if(host->name[len-1] == '.') + /* strip off a single trailing dot if present, primarily for SNI but + there's no use for it */ + host->name[len-1]=0; + if(!is_ASCII_name(host->name)) { #ifdef USE_LIBIDN /************************************************************* |