diff options
author | obscuren <geffobscura@gmail.com> | 2015-04-19 23:06:56 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-04-19 23:07:40 +0800 |
commit | 8f3a7e41deff4084b166aca1337258077bd2a3e6 (patch) | |
tree | ddc62daeec7a44c2baacb986f8c9d76df25a5976 /p2p | |
parent | 4683f9c0a71fd42e749da46ac56c6ba76f379931 (diff) | |
parent | 7180699d401e64b52447ccb2cfb33004b7deb672 (diff) | |
download | dexon-8f3a7e41deff4084b166aca1337258077bd2a3e6.tar dexon-8f3a7e41deff4084b166aca1337258077bd2a3e6.tar.gz dexon-8f3a7e41deff4084b166aca1337258077bd2a3e6.tar.bz2 dexon-8f3a7e41deff4084b166aca1337258077bd2a3e6.tar.lz dexon-8f3a7e41deff4084b166aca1337258077bd2a3e6.tar.xz dexon-8f3a7e41deff4084b166aca1337258077bd2a3e6.tar.zst dexon-8f3a7e41deff4084b166aca1337258077bd2a3e6.zip |
Merge branch 'rlp-size-validation' of https://github.com/fjl/go-ethereum into fjl-rlp-size-validation
Conflicts:
eth/protocol.go
Diffstat (limited to 'p2p')
-rw-r--r-- | p2p/discover/udp.go | 2 | ||||
-rw-r--r-- | p2p/message.go | 3 | ||||
-rw-r--r-- | p2p/peer_error.go | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/p2p/discover/udp.go b/p2p/discover/udp.go index 61a0abed9..07a1a739c 100644 --- a/p2p/discover/udp.go +++ b/p2p/discover/udp.go @@ -413,7 +413,7 @@ func decodePacket(buf []byte) (packet, NodeID, []byte, error) { default: return nil, fromID, hash, fmt.Errorf("unknown type: %d", ptype) } - err = rlp.Decode(bytes.NewReader(sigdata[1:]), req) + err = rlp.DecodeBytes(sigdata[1:], req) return req, fromID, hash, err } diff --git a/p2p/message.go b/p2p/message.go index b42acbe3c..be6405d6f 100644 --- a/p2p/message.go +++ b/p2p/message.go @@ -32,7 +32,8 @@ type Msg struct { // // For the decoding rules, please see package rlp. func (msg Msg) Decode(val interface{}) error { - if err := rlp.Decode(msg.Payload, val); err != nil { + s := rlp.NewStream(msg.Payload, uint64(msg.Size)) + if err := s.Decode(val); err != nil { return newPeerError(errInvalidMsg, "(code %x) (size %d) %v", msg.Code, msg.Size, err) } return nil diff --git a/p2p/peer_error.go b/p2p/peer_error.go index 402131630..a912f6064 100644 --- a/p2p/peer_error.go +++ b/p2p/peer_error.go @@ -57,7 +57,7 @@ func (self *peerError) Error() string { return self.message } -type DiscReason byte +type DiscReason uint const ( DiscRequested DiscReason = iota |