urlmon: Store URI host len in parse_ipv4address before further parsing.
This commit is contained in:
parent
7c04ed36a4
commit
8fcf7013bc
|
@ -997,6 +997,31 @@ static const uri_properties uri_tests[] = {
|
||||||
{URLZONE_INVALID,E_NOTIMPL,FALSE}
|
{URLZONE_INVALID,E_NOTIMPL,FALSE}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{ "http://127.0.0.1:8000", 0, S_OK, FALSE,
|
||||||
|
{
|
||||||
|
{"http://127.0.0.1:8000/",S_OK},
|
||||||
|
{"127.0.0.1:8000",S_OK},
|
||||||
|
{"http://127.0.0.1:8000/",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"127.0.0.1",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"/",S_OK},
|
||||||
|
{"/",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"http://127.0.0.1:8000",S_OK},
|
||||||
|
{"http",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"",S_FALSE}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{Uri_HOST_IPV4,S_OK,FALSE},
|
||||||
|
{8000,S_OK,FALSE},
|
||||||
|
{URL_SCHEME_HTTP,S_OK,FALSE},
|
||||||
|
{URLZONE_INVALID,E_NOTIMPL,FALSE}
|
||||||
|
}
|
||||||
|
},
|
||||||
/* Make sure it normalizes partial IPv4 addresses correctly. */
|
/* Make sure it normalizes partial IPv4 addresses correctly. */
|
||||||
{ "http://127.0/", 0, S_OK, FALSE,
|
{ "http://127.0/", 0, S_OK, FALSE,
|
||||||
{
|
{
|
||||||
|
|
|
@ -1493,6 +1493,9 @@ static BOOL parse_ipv4address(const WCHAR **ptr, parse_data *data, DWORD flags)
|
||||||
data->has_implicit_ip = TRUE;
|
data->has_implicit_ip = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data->host_len = *ptr - data->host;
|
||||||
|
data->host_type = Uri_HOST_IPV4;
|
||||||
|
|
||||||
/* Check if what we found is the only part of the host name (if it isn't
|
/* Check if what we found is the only part of the host name (if it isn't
|
||||||
* we don't have an IPv4 address).
|
* we don't have an IPv4 address).
|
||||||
*/
|
*/
|
||||||
|
@ -1511,9 +1514,6 @@ static BOOL parse_ipv4address(const WCHAR **ptr, parse_data *data, DWORD flags)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->host_len = *ptr - data->host;
|
|
||||||
data->host_type = Uri_HOST_IPV4;
|
|
||||||
|
|
||||||
TRACE("(%p %p %x): IPv4 address found. host=%s host_len=%d host_type=%d\n",
|
TRACE("(%p %p %x): IPv4 address found. host=%s host_len=%d host_type=%d\n",
|
||||||
ptr, data, flags, debugstr_wn(data->host, data->host_len),
|
ptr, data, flags, debugstr_wn(data->host, data->host_len),
|
||||||
data->host_len, data->host_type);
|
data->host_len, data->host_type);
|
||||||
|
|
Loading…
Reference in New Issue