Explorar o código

defensive fix for improper usage of buf.New().

Darien Raymond %!s(int64=7) %!d(string=hai) anos
pai
achega
12181f527f
Modificáronse 2 ficheiros con 2 adicións e 2 borrados
  1. 1 1
      app/proxyman/mux/reader.go
  2. 1 1
      proxy/http/server.go

+ 1 - 1
app/proxyman/mux/reader.go

@@ -17,7 +17,7 @@ func ReadMetadata(reader io.Reader) (*FrameMetadata, error) {
 		return nil, newError("invalid metalen ", metaLen).AtError()
 	}
 
-	b := buf.New()
+	b := buf.NewSize(uint32(metaLen))
 	defer b.Release()
 
 	if err := b.Reset(buf.ReadFullFrom(reader, int(metaLen))); err != nil {

+ 1 - 1
proxy/http/server.go

@@ -173,7 +173,7 @@ func (s *Server) handleConnect(ctx context.Context, request *http.Request, reade
 	}
 
 	if reader.Buffered() > 0 {
-		payload := buf.New()
+		payload := buf.NewSize(uint32(reader.Buffered()))
 		common.Must(payload.Reset(func(b []byte) (int, error) {
 			return reader.Read(b[:reader.Buffered()])
 		}))