Skip to content

Commit 01e5775

Browse files
authored
grpc: limit reader with maxReceiveMessageSize (#2617)
fixes #2616
1 parent 23ef127 commit 01e5775

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

Diff for: rpc_util.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,9 @@ func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxRecei
661661
if err != nil {
662662
return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message %v", err)
663663
}
664-
d, err = ioutil.ReadAll(dcReader)
664+
// Read from LimitReader with limit max+1. So if the underlying
665+
// reader is over limit, the result will be bigger than max.
666+
d, err = ioutil.ReadAll(io.LimitReader(dcReader, int64(maxReceiveMessageSize)+1))
665667
if err != nil {
666668
return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message %v", err)
667669
}

0 commit comments

Comments
 (0)