diff --git a/libethereum/PeerSession.cpp b/libethereum/PeerSession.cpp index 281e834f0..e9703a830 100644 --- a/libethereum/PeerSession.cpp +++ b/libethereum/PeerSession.cpp @@ -564,7 +564,11 @@ void PeerSession::doRead() while (m_incoming.size() > 8) { if (m_incoming[0] != 0x22 || m_incoming[1] != 0x40 || m_incoming[2] != 0x08 || m_incoming[3] != 0x91) - doRead(); + { + cwarn << "INVALID SYNCHRONISATION TOKEN; expected = 22400891; received = " << toHex(bytesConstRef(m_incoming.data(), 4)); + disconnect(BadProtocol); + return; + } else { uint32_t len = fromBigEndian(bytesConstRef(m_incoming.data() + 4, 4));