diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2017-03-03 13:49:21 -0800 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2017-03-03 13:49:21 -0800 |
| commit | d56f740dc6cf35bd4e26c17503170d0f6c8035ec (patch) | |
| tree | 97e73d34c2c883f0831be9fca66d7fab2e03ec56 /node/IncomingPacket.cpp | |
| parent | a109d341ef72149dad5eae0b616a1f47d24487f9 (diff) | |
| download | infinitytier-d56f740dc6cf35bd4e26c17503170d0f6c8035ec.tar.gz infinitytier-d56f740dc6cf35bd4e26c17503170d0f6c8035ec.zip | |
Now with less bugs.
Diffstat (limited to 'node/IncomingPacket.cpp')
| -rw-r--r-- | node/IncomingPacket.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index 9c13a283..856538b4 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -875,6 +875,8 @@ bool IncomingPacket::_doNETWORK_CREDENTIALS(const RuntimeEnvironment *RR,const S } } + if (p >= size()) return true; + const unsigned int numTags = at<uint16_t>(p); p += 2; for(unsigned int i=0;i<numTags;++i) { p += tag.deserialize(*this,p); @@ -893,6 +895,8 @@ bool IncomingPacket::_doNETWORK_CREDENTIALS(const RuntimeEnvironment *RR,const S } } + if (p >= size()) return true; + const unsigned int numRevocations = at<uint16_t>(p); p += 2; for(unsigned int i=0;i<numRevocations;++i) { p += revocation.deserialize(*this,p); @@ -911,6 +915,8 @@ bool IncomingPacket::_doNETWORK_CREDENTIALS(const RuntimeEnvironment *RR,const S } } + if (p >= size()) return true; + const unsigned int numCoos = at<uint16_t>(p); p += 2; for(unsigned int i=0;i<numCoos;++i) { p += coo.deserialize(*this,p); |
