1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

[svn] Return an error from url_parse if the IP address is IPv6 and we don't

handle IPv6.
This commit is contained in:
hniksic 2003-09-09 06:06:58 -07:00
parent 05715ed4d6
commit 0e9b4de751
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2003-09-09 Hrvoje Niksic <hniksic@xemacs.org>
* url.c (url_parse): Return an error if the URL contains a [...]
IPv6 numeric address and we don't support IPv6.
2003-09-05 Hrvoje Niksic <hniksic@xemacs.org> 2003-09-05 Hrvoje Niksic <hniksic@xemacs.org>
* url.c (is_valid_ipv6_address): Modified to not require * url.c (is_valid_ipv6_address): Modified to not require

View File

@ -649,7 +649,9 @@ static char *parse_errors[] = {
"Invalid user name", "Invalid user name",
#define PE_UNTERMINATED_IPV6_ADDRESS 5 #define PE_UNTERMINATED_IPV6_ADDRESS 5
"Unterminated IPv6 numeric address", "Unterminated IPv6 numeric address",
#define PE_INVALID_IPV6_ADDRESS 6 #define PE_IPV6_NOT_SUPPORTED 6
"IPv6 addresses not supported",
#define PE_INVALID_IPV6_ADDRESS 7
"Invalid IPv6 numeric address" "Invalid IPv6 numeric address"
}; };
@ -658,6 +660,7 @@ static char *parse_errors[] = {
*(p) = (v); \ *(p) = (v); \
} while (0) } while (0)
#ifdef INET6
/* The following two functions were adapted from glibc. */ /* The following two functions were adapted from glibc. */
static int static int
@ -787,7 +790,7 @@ is_valid_ipv6_address (const char *str, const char *end)
return 1; return 1;
} }
#endif
/* Parse a URL. /* Parse a URL.
@ -860,6 +863,7 @@ url_parse (const char *url, int *error)
return NULL; return NULL;
} }
#ifdef INET6
/* Check if the IPv6 address is valid. */ /* Check if the IPv6 address is valid. */
if (!is_valid_ipv6_address(host_b, host_e)) if (!is_valid_ipv6_address(host_b, host_e))
{ {
@ -869,6 +873,10 @@ url_parse (const char *url, int *error)
/* Continue parsing after the closing ']'. */ /* Continue parsing after the closing ']'. */
p = host_e + 1; p = host_e + 1;
#else
SETERR (error, PE_IPV6_NOT_SUPPORTED);
return NULL;
#endif
} }
else else
{ {