Index: lib/libfetch/fetch.c =================================================================== --- lib/libfetch/fetch.c +++ lib/libfetch/fetch.c @@ -405,6 +405,7 @@ q = p + 1 + strspn(p + 1, ":0123456789ABCDEFabcdef"); if (*q++ != ']') goto ouch; + p++; } else { /* valid characters in a DNS name */ q = p + strspn(p, "-." "0123456789" @@ -413,8 +414,11 @@ } if ((*q != '\0' && *q != '/' && *q != ':') || q - p > MAXHOSTNAMELEN) goto ouch; - for (i = 0; p + i < q; i++) + for (i = 0; p + i < q; i++) { + if (p[i] == ']') + break; u->host[i] = tolower((unsigned char)p[i]); + } u->host[i] = '\0'; p = q;