check max msg size in DecodeMessage

This commit is contained in:
Ethan Buchman
2018-04-09 15:18:47 +03:00
parent bb1b249e8a
commit 1a1e4e767b
6 changed files with 33 additions and 13 deletions
+5 -1
View File
@@ -21,7 +21,7 @@ const (
// PexChannel is a channel for PEX messages
PexChannel = byte(0x00)
maxPexMessageSize = 1048576 // 1MB
maxMsgSize = 1048576 // 1MB
// ensure we have enough peers
defaultEnsurePeersPeriod = 30 * time.Second
@@ -616,6 +616,10 @@ func RegisterPexMessage(cdc *amino.Codec) {
// DecodeMessage implements interface registered above.
func DecodeMessage(bz []byte) (msg PexMessage, err error) {
if len(bz) > maxMsgSize {
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)",
len(bz), maxMsgSize)
}
err = cdc.UnmarshalBinary(bz, &msg)
return
}