From 52fac535e340e03aac1c0f531ef4306f45a22abe Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Wed, 14 Aug 2019 11:48:32 +0100 Subject: [PATCH] Fix nil pointer with ClientInfo --- internal/server/TLS.go | 2 +- internal/server/auth.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/server/TLS.go b/internal/server/TLS.go index e46e842..a016d40 100644 --- a/internal/server/TLS.go +++ b/internal/server/TLS.go @@ -218,7 +218,7 @@ var ErrBadClientHello = errors.New("non (or malformed) ClientHello") var ErrNotCloak = errors.New("TLS but non-Cloak ClientHello") var ErrBadProxyMethod = errors.New("invalid proxy method") -func PrepareConnection(firstPacket []byte, sta *State, conn net.Conn) (info *ClientInfo, finisher func([]byte) error, err error) { +func PrepareConnection(firstPacket []byte, sta *State, conn net.Conn) (info ClientInfo, finisher func([]byte) error, err error) { ch, err := parseClientHello(firstPacket) if err != nil { log.Debug(err) diff --git a/internal/server/auth.go b/internal/server/auth.go index 4d55175..761dd7a 100644 --- a/internal/server/auth.go +++ b/internal/server/auth.go @@ -22,7 +22,7 @@ var ErrInvalidPubKey = errors.New("public key has invalid format") var ErrCiphertextLength = errors.New("ciphertext has the wrong length") var ErrTimestampOutOfWindow = errors.New("timestamp is outside of the accepting window") -func TouchStone(ch *ClientHello, sta *State) (info *ClientInfo, sharedSecret []byte, err error) { +func TouchStone(ch *ClientHello, sta *State) (info ClientInfo, sharedSecret []byte, err error) { if sta.registerRandom(ch.random) { err = ErrReplay @@ -54,7 +54,7 @@ func TouchStone(ch *ClientHello, sta *State) (info *ClientInfo, sharedSecret []b return } - info = &ClientInfo{ + info = ClientInfo{ UID: plaintext[0:16], SessionId: 0, ProxyMethod: string(bytes.Trim(plaintext[16:28], "\x00")),