Skip to content

Commit a800f7d

Browse files
committed
Apply suggestions
1 parent c42095b commit a800f7d

File tree

5 files changed

+10
-8
lines changed

5 files changed

+10
-8
lines changed

dot/network/helpers_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func (s *testStreamHandler) readStream(stream libp2pnetwork.Stream,
8686
}()
8787

8888
for {
89-
tot, err := readStream(stream, msgBytes)
89+
tot, err := readStream(stream, &msgBytes)
9090
if errors.Is(err, io.EOF) {
9191
return
9292
} else if err != nil {

dot/network/inbound.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ func (s *Service) readStream(stream libp2pnetwork.Stream, decoder messageDecoder
1717
peer := stream.Conn().RemotePeer()
1818
buffer := s.bufPool.Get().(*[]byte)
1919
defer s.bufPool.Put(buffer)
20-
msgBytes := *buffer
2120

2221
for {
23-
n, err := readStream(stream, msgBytes[:])
22+
n, err := readStream(stream, buffer)
2423
if err != nil {
2524
logger.Tracef(
2625
"failed to read from stream id %s of peer %s using protocol %s: %s",
@@ -32,6 +31,7 @@ func (s *Service) readStream(stream libp2pnetwork.Stream, decoder messageDecoder
3231

3332
// decode message based on message type
3433
// stream should always be inbound if it passes through service.readStream
34+
msgBytes := *buffer
3535
msg, err := decoder(msgBytes[:n], peer, isInbound(stream))
3636
if err != nil {
3737
logger.Tracef("failed to decode message from stream id %s using protocol %s: %s",

dot/network/notifications.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,14 +431,14 @@ func (s *Service) readHandshake(stream libp2pnetwork.Stream, decoder HandshakeDe
431431

432432
buffer := s.bufPool.Get().(*[]byte)
433433
defer s.bufPool.Put(buffer)
434-
msgBytes := *buffer
435434

436-
tot, err := readStream(stream, msgBytes[:])
435+
tot, err := readStream(stream, buffer)
437436
if err != nil {
438437
hsC <- &handshakeReader{hs: nil, err: err}
439438
return
440439
}
441440

441+
msgBytes := *buffer
442442
hs, err := decoder(msgBytes[:tot])
443443
if err != nil {
444444
s.host.cm.peerSetHandler.ReportPeer(peerset.ReputationChange{

dot/network/sync.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func (s *Service) receiveBlockResponse(stream libp2pnetwork.Stream) (*BlockRespo
5858

5959
buf := s.blockResponseBuf
6060

61-
n, err := readStream(stream, buf)
61+
n, err := readStream(stream, &buf)
6262
if err != nil {
6363
return nil, fmt.Errorf("read stream error: %w", err)
6464
}

dot/network/utils.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ func readLEB128ToUint64(r io.Reader, buf []byte) (uint64, int, error) {
176176
}
177177

178178
// readStream reads from the stream into the given buffer, returning the number of bytes read
179-
func readStream(stream libp2pnetwork.Stream, buf []byte) (int, error) {
179+
func readStream(stream libp2pnetwork.Stream, bufPointer *[]byte) (int, error) {
180180
if stream == nil {
181181
return 0, errors.New("stream is nil")
182182
}
@@ -185,6 +185,7 @@ func readStream(stream libp2pnetwork.Stream, buf []byte) (int, error) {
185185
tot int
186186
)
187187

188+
buf := *bufPointer
188189
length, bytesRead, err := readLEB128ToUint64(stream, buf[:1])
189190
if err != nil {
190191
return bytesRead, fmt.Errorf("failed to read length: %w", err)
@@ -195,8 +196,9 @@ func readStream(stream libp2pnetwork.Stream, buf []byte) (int, error) {
195196
}
196197

197198
if length > uint64(len(buf)) {
199+
extraBytes := int(length) - len(buf)
200+
*bufPointer = append(buf, make([]byte, extraBytes)...) // TODO #2288 use bytes.Buffer instead
198201
logger.Warnf("received message with size %d greater than allocated message buffer size %d", length, len(buf))
199-
return 0, fmt.Errorf("message size greater than allocated message buffer: got %d", length)
200202
}
201203

202204
if length > maxBlockResponseSize {

0 commit comments

Comments
 (0)