mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-17 10:20:44 +00:00
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:
parent
8d84e5001a
commit
6e6fcef0ba
2 changed files with 2 additions and 2 deletions
|
|
@ -224,10 +224,10 @@ func handleMessage(backend Backend, peer *Peer) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer msg.Discard()
|
||||||
if msg.Size > maxMessageSize {
|
if msg.Size > maxMessageSize {
|
||||||
return fmt.Errorf("%w: %v > %v", errMsgTooLarge, msg.Size, maxMessageSize)
|
return fmt.Errorf("%w: %v > %v", errMsgTooLarge, msg.Size, maxMessageSize)
|
||||||
}
|
}
|
||||||
defer msg.Discard()
|
|
||||||
|
|
||||||
var handlers map[uint64]msgHandler
|
var handlers map[uint64]msgHandler
|
||||||
switch peer.version {
|
switch peer.version {
|
||||||
|
|
|
||||||
|
|
@ -160,10 +160,10 @@ func HandleMessage(backend Backend, peer *Peer) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer msg.Discard()
|
||||||
if msg.Size > maxMessageSize {
|
if msg.Size > maxMessageSize {
|
||||||
return fmt.Errorf("%w: %v > %v", errMsgTooLarge, msg.Size, maxMessageSize)
|
return fmt.Errorf("%w: %v > %v", errMsgTooLarge, msg.Size, maxMessageSize)
|
||||||
}
|
}
|
||||||
defer msg.Discard()
|
|
||||||
|
|
||||||
var handlers map[uint64]msgHandler
|
var handlers map[uint64]msgHandler
|
||||||
switch peer.version {
|
switch peer.version {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue