X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/31fb1866040c36038f24c1e2e79e36bf35993279..055817455466c8eb60392f30bb7c689763962e17:/windows/window.c diff --git a/windows/window.c b/windows/window.c index c80a25d3..17aaf1ae 100644 --- a/windows/window.c +++ b/windows/window.c @@ -542,9 +542,20 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) } /* - * Trim a colon suffix off the hostname if it's there. + * Trim a colon suffix off the hostname if it's there. In + * order to protect IPv6 address literals against this + * treatment, we do not do this if there's _more_ than one + * colon. */ - cfg.host[strcspn(cfg.host, ":")] = '\0'; + { + char *c = strchr(cfg.host, ':'); + + if (c) { + char *d = strchr(c+1, ':'); + if (!d) + *c = '\0'; + } + } /* * Remove any remaining whitespace from the hostname.