瀏覽代碼

Fix buffer overrun in vmess

v2ray 9 年之前
父節點
當前提交
c20c44526c
共有 1 個文件被更改,包括 1 次插入2 次删除
  1. 1 2
      proxy/vmess/io/reader.go

+ 1 - 2
proxy/vmess/io/reader.go

@@ -30,11 +30,10 @@ func (this *AuthChunkReader) Read() (*alloc.Buffer, error) {
 	if length <= 4 { // Length of authentication bytes.
 		return nil, io.EOF
 	}
-	if length > 8*1024 {
+	if length > 8*1024-16 {
 		buffer.Release()
 		buffer = alloc.NewLargeBuffer()
 	}
-	buffer.SliceBack(16)
 	if _, err := io.ReadFull(this.reader, buffer.Value[:length]); err != nil {
 		buffer.Release()
 		return nil, err