mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-19 19:30:44 +00:00
eth/protocols/eth: discard message before size check
Move msg.Discard defer ahead of the max message size check so oversized messages are released instead of leaking when the handler returns early.
This commit is contained in:
parent
7aa7806c09
commit
421d4810d5
2 changed files with 2 additions and 2 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in a new issue