From 40f75ef38b6fea7d2977810c76e9f47593ec731a Mon Sep 17 00:00:00 2001 From: nadoo <287492+nadoo@users.noreply.github.com> Date: Sat, 25 Dec 2021 12:28:09 +0800 Subject: [PATCH] vmess: fix aead painc #301 (ref: #302) optimize --- proxy/vmess/aead.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/proxy/vmess/aead.go b/proxy/vmess/aead.go index c37841e..b97609a 100644 --- a/proxy/vmess/aead.go +++ b/proxy/vmess/aead.go @@ -89,7 +89,7 @@ func (r *aeadReader) read(p []byte) (int, error) { return 0, err } - if int(size) > len(p) { + if int(size) <= r.Overhead() || int(size) > len(p) { return 0, io.EOF } @@ -111,8 +111,6 @@ func (r *aeadReader) read(p []byte) (int, error) { func (r *aeadReader) Read(p []byte) (int, error) { if r.buf == nil { - // https://www.v2fly.org/en_US/developer/protocols/vmess.html#standard-format - // According to the spec, the maximum data length is 2^14 (chunkSize) if len(p) >= chunkSize { return r.read(p) }