소스 검색

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