From e3de2b9852d71bb14e770767dd46ab48bb1fdd14 Mon Sep 17 00:00:00 2001 From: Qian Wang Date: Wed, 7 Aug 2019 17:22:40 +0100 Subject: [PATCH] Fix a potential make len<0 --- internal/multiplex/obfs.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/multiplex/obfs.go b/internal/multiplex/obfs.go index 0a18e5e..c997e90 100644 --- a/internal/multiplex/obfs.go +++ b/internal/multiplex/obfs.go @@ -89,7 +89,11 @@ func MakeDeobfs(salsaKey [32]byte, payloadCipher cipher.AEAD) Deobfser { closing := header[8] extraLen := header[9] - outputPayload := make([]byte, len(payload)-int(extraLen)) + outputLen := len(payload) - int(extraLen) + if outputLen < 0 { + return nil, errors.New("extra length is greater than total payload length") + } + outputPayload := make([]byte, outputLen) if payloadCipher == nil { copy(outputPayload, payload)