Skip to content

Commit b2616fd

Browse files
authored
fix: add header range mix up check (#273)
Fixes #224
1 parent 61babe4 commit b2616fd

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

interface.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ var (
5656
// ErrHeadersLimitExceeded is returned when ExchangeServer receives header request for more
5757
// than maxRequestSize headers.
5858
ErrHeadersLimitExceeded = errors.New("header/p2p: header limit per 1 request exceeded")
59+
60+
// ErrRangeMixUp is returned when `from` >= `to`.
61+
ErrRangeMixUp = errors.New("header/p2p: `from` must be less than `to`")
5962
)
6063

6164
// Store encompasses the behavior necessary to store and retrieve Headers

p2p/server.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,10 @@ func (serv *ExchangeServer[H]) handleRangeRequest(
203203
ctx context.Context,
204204
from, to uint64,
205205
) ([]H, error) {
206+
if from >= to {
207+
return nil, header.ErrRangeMixUp
208+
}
209+
206210
if from == uint64(0) {
207211
return serv.handleHeadRequest(ctx)
208212
}

0 commit comments

Comments
 (0)