diff --git a/libethereum/EthereumPeer.cpp b/libethereum/EthereumPeer.cpp index 50ed76d9b..497513b46 100644 --- a/libethereum/EthereumPeer.cpp +++ b/libethereum/EthereumPeer.cpp @@ -186,8 +186,16 @@ bool EthereumPeer::interpret(unsigned _id, RLP const& _r) m_genesisHash = _r[4].toHash(); if (m_peerCapabilityVersion == host()->protocolVersion()) { - m_protocolVersion = host()->protocolVersion(); - m_latestBlockNumber = _r[5].toInt(); + if (_r.itemCount() != 6) + { + clog(NetImpolite) << "Peer does not support PV61+ status extension."; + m_protocolVersion = EthereumHost::c_oldProtocolVersion; + } + else + { + m_protocolVersion = host()->protocolVersion(); + m_latestBlockNumber = _r[5].toInt(); + } } clog(NetMessageSummary) << "Status:" << m_protocolVersion << "/" << m_networkId << "/" << m_genesisHash << "/" << m_latestBlockNumber << ", TD:" << m_totalDifficulty << "=" << m_latestHash;