aboutsummaryrefslogtreecommitdiffstats
path: root/p2p
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-04-19 23:06:56 +0800
committerobscuren <geffobscura@gmail.com>2015-04-19 23:07:40 +0800
commit8f3a7e41deff4084b166aca1337258077bd2a3e6 (patch)
treeddc62daeec7a44c2baacb986f8c9d76df25a5976 /p2p
parent4683f9c0a71fd42e749da46ac56c6ba76f379931 (diff)
parent7180699d401e64b52447ccb2cfb33004b7deb672 (diff)
downloaddexon-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.go2
-rw-r--r--p2p/message.go3
-rw-r--r--p2p/peer_error.go2
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