diff --git a/core/internal/protocol/proxy.go b/core/internal/protocol/proxy.go index 87d1b65..4a78fc2 100644 --- a/core/internal/protocol/proxy.go +++ b/core/internal/protocol/proxy.go @@ -212,8 +212,9 @@ func ParseUDPMessage(msg []byte) (*UDPMessage, error) { return nil, errors.ProtocolError{Message: "invalid address length"} } bs := buf.Bytes() - if len(bs) < int(lAddr) { - return nil, errors.ProtocolError{Message: "message length mismatch"} + if len(bs) <= int(lAddr) { + // We use <= instead of < here as we expect at least one byte of data after the address + return nil, errors.ProtocolError{Message: "invalid message length"} } m.Addr = string(bs[:lAddr]) m.Data = bs[lAddr:]