Mercurial > prosody-hg
diff util/jid.lua @ 14103:27e97e5b2c16 13.0
util.jid: Fix to reject IPv6 literal hosts without brackets
From RFC 7622:
> Implementation Note: Reuse of the IP-literal rule from [RFC6874]
> implies that IPv6 addresses are enclosed within square brackets (i.e.,
> beginning with '[' and ending with ']'), , which was not the case with
> the definition of the XMPP address format in [RFC3920] but which was
> changed in [RFC6122].
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 14 Mar 2026 01:16:14 +0100 |
| parents | 863dd118f8e8 |
| children |
line wrap: on
line diff
--- a/util/jid.lua Wed Mar 11 16:53:48 2026 +0100 +++ b/util/jid.lua Sat Mar 14 01:16:14 2026 +0100 @@ -52,7 +52,8 @@ local function valid_ip(ip) local v6 = match(ip, "^%[([%x:.]+)%]$"); - return net.pton(v6 or ip); + local v4 = match(ip, "^%d%d?%d?%.%d%d?%d?%.%d%d?%d?%.%d%d?%d?$"); + return (v6 or v4) and net.pton(v6 or v4); end local function prepped_split(jid, strict)
