|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
diff --git a/src/LYUtils.c b/src/LYUtils.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
index dd0a3dc..62a0591 100644
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
--- a/src/LYUtils.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+++ b/src/LYUtils.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
@@ -2283,9 +2283,10 @@ UrlTypes is_url(char *filename)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
return (result);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
/*
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
- * Can't be a URL if it lacks a colon.
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ * Can't be a URL if it lacks a colon and if it starts with '[' it's
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ * probably IPv6 adress.
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
- if (NULL == strchr(cp, ':'))
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ if (NULL == strchr(cp, ':') || cp[0] == '[')
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
return (result);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
/*
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
@@ -4549,6 +4550,8 @@ BOOLEAN LYExpandHostForURL(char **AllocatedString,
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
#ifdef INET6
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
struct addrinfo hints, *res;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
int error;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ char *begin;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ char *end = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
#endif /* INET6 */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
/*
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
@@ -4593,7 +4596,7 @@ BOOLEAN LYExpandHostForURL(char **AllocatedString,
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
* field after filling in the host field. - FM
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
if ((StrColon = strrchr(Str, ':')) != NULL &&
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
- isdigit(UCH(StrColon[1]))) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ isdigit(UCH(StrColon[1])) && strchr(StrColon, ']') == NULL) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
if (StrColon == Str) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
goto cleanup;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
@@ -4614,10 +4617,20 @@ BOOLEAN LYExpandHostForURL(char **AllocatedString,
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
fprintf(stdout, "%s '%s'%s\r\n", WWW_FIND_MESSAGE, host, FIRST_SEGMENT);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
#ifdef INET6
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ begin = host;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ if (host[0] == '[' && ((end = strrchr(host, ']')))) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ /*
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ * cut '[' and ']' from the IPv6 address, e.g. [::1]
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ begin = host + 1;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ *end = '\0';
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
memset(&hints, 0, sizeof(hints));
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
hints.ai_family = PF_UNSPEC;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
hints.ai_socktype = SOCK_STREAM;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
- error = getaddrinfo(host, "80", &hints, &res;;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ error = getaddrinfo(begin, "80", &hints, &res;;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ if (end)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
+ *end = ']';
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
if (!error && res)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6399ca3 |
#else
|