From 9d3de59d3ffcf58c2d2aecb0866b3f0035baedd8 Mon Sep 17 00:00:00 2001 From: RPRX <63339210+RPRX@users.noreply.github.com> Date: Tue, 21 Feb 2023 13:43:13 +0000 Subject: [PATCH] Check "serverNames" and "shortIds" (client side) Prevents https://github.com/XTLS/Xray-core/issues/1675 --- infra/conf/transport_internet.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/infra/conf/transport_internet.go b/infra/conf/transport_internet.go index 4d2e92e4..a81760cb 100644 --- a/infra/conf/transport_internet.go +++ b/infra/conf/transport_internet.go @@ -631,12 +631,18 @@ func (c *REALITYConfig) Build() (proto.Message, error) { if config.Fingerprint == "hellogolang" { return nil, newError(`invalid "fingerprint": `, config.Fingerprint) } + if len(c.ServerNames) != 0 { + return nil, newError(`non-empty "serverNames", please use "serverName" instead`) + } if c.PublicKey == "" { return nil, newError(`empty "publicKey"`) } if config.PublicKey, err = base64.RawURLEncoding.DecodeString(c.PublicKey); err != nil || len(config.PublicKey) != 32 { return nil, newError(`invalid "publicKey": `, c.PublicKey) } + if len(c.ShortIds) != 0 { + return nil, newError(`non-empty "shortIds", please use "shortId" instead`) + } config.ShortId = make([]byte, 8) if _, err = hex.Decode(config.ShortId, []byte(c.ShortId)); err != nil { return nil, newError(`invalid "shortId": `, c.ShortId)