eth/protocols/eth: discard message before size check (#35289)

- Move `msg.Discard` defer ahead of the max message size check in
`handleMessage`.
- Ensures oversized messages are released when the handler returns
early.
This commit is contained in:
cui 2026-07-14 22:06:57 +08:00 committed by GitHub
parent 8d84e5001a
commit 6e6fcef0ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 2 additions and 2 deletions

View file

@ -224,10 +224,10 @@ func handleMessage(backend Backend, peer *Peer) error {
if err != nil {
return err
}
defer msg.Discard()
if msg.Size > maxMessageSize {
return fmt.Errorf("%w: %v > %v", errMsgTooLarge, msg.Size, maxMessageSize)
}
defer msg.Discard()
var handlers map[uint64]msgHandler
switch peer.version {

View file

@ -160,10 +160,10 @@ func HandleMessage(backend Backend, peer *Peer) error {
if err != nil {
return err
}
defer msg.Discard()
if msg.Size > maxMessageSize {
return fmt.Errorf("%w: %v > %v", errMsgTooLarge, msg.Size, maxMessageSize)
}
defer msg.Discard()
var handlers map[uint64]msgHandler
switch peer.version {