luci-lib-httpclient: prevent nil access with invalid IP address literals
Fixes: a54baf7be
("luci-lib-httpclient: revamp URL handling")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
a54baf7be0
commit
a692ca789a
1 changed files with 4 additions and 4 deletions
|
@ -108,20 +108,20 @@ function parse_url(uri)
|
|||
url.host, tmp = rest:match("^%[([0-9a-fA-F:]+)%](.*)$")
|
||||
if url.host and tmp then
|
||||
url.ip6addr = ip.IPv6(url.host)
|
||||
url.host = string.format("[%s]", url.ip6addr:string())
|
||||
rest = tmp
|
||||
if not url.ip6addr then
|
||||
return nil
|
||||
end
|
||||
url.host = string.format("[%s]", url.ip6addr:string())
|
||||
rest = tmp
|
||||
else
|
||||
url.host, tmp = rest:match("^(%d+%.%d+%.%d+%.%d+)(.*)$")
|
||||
if url.host and tmp then
|
||||
url.ipaddr = ip.IPv4(url.host)
|
||||
url.host = url.ipaddr:string()
|
||||
rest = tmp
|
||||
if not url.ipaddr then
|
||||
return nil
|
||||
end
|
||||
url.host = url.ipaddr:string()
|
||||
rest = tmp
|
||||
else
|
||||
url.host, tmp = rest:match("^([0-9a-zA-Z%.%-]+)(.*)$")
|
||||
if url.host and tmp then
|
||||
|
|
Loading…
Reference in a new issue