Skip to content

Commit 09205b3

Browse files
committed
net: Clarify message header validation errors
Make the errors less shouty and more descriptive.
1 parent 955eee7 commit 09205b3

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

src/net.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -681,19 +681,19 @@ int V1TransportDeserializer::readHeader(Span<const uint8_t> msg_bytes)
681681
hdrbuf >> hdr;
682682
}
683683
catch (const std::exception&) {
684-
LogPrint(BCLog::NET, "HEADER ERROR - UNABLE TO DESERIALIZE, peer=%d\n", m_node_id);
684+
LogPrint(BCLog::NET, "Header error: Unable to deserialize, peer=%d\n", m_node_id);
685685
return -1;
686686
}
687687

688688
// Check start string, network magic
689689
if (memcmp(hdr.pchMessageStart, m_chain_params.MessageStart(), CMessageHeader::MESSAGE_START_SIZE) != 0) {
690-
LogPrint(BCLog::NET, "HEADER ERROR - MESSAGESTART received %s, peer=%d\n", HexStr(hdr.pchMessageStart), m_node_id);
690+
LogPrint(BCLog::NET, "Header error: Wrong MessageStart %s received, peer=%d\n", HexStr(hdr.pchMessageStart), m_node_id);
691691
return -1;
692692
}
693693

694694
// reject messages larger than MAX_SIZE or MAX_PROTOCOL_MESSAGE_LENGTH
695695
if (hdr.nMessageSize > MAX_SIZE || hdr.nMessageSize > MAX_PROTOCOL_MESSAGE_LENGTH) {
696-
LogPrint(BCLog::NET, "HEADER ERROR - SIZE (%s, %u bytes), peer=%d\n", SanitizeString(hdr.GetCommand()), hdr.nMessageSize, m_node_id);
696+
LogPrint(BCLog::NET, "Header error: Size too large (%s, %u bytes), peer=%d\n", SanitizeString(hdr.GetCommand()), hdr.nMessageSize, m_node_id);
697697
return -1;
698698
}
699699

@@ -746,15 +746,15 @@ std::optional<CNetMessage> V1TransportDeserializer::GetMessage(const std::chrono
746746

747747
// Check checksum and header command string
748748
if (memcmp(hash.begin(), hdr.pchChecksum, CMessageHeader::CHECKSUM_SIZE) != 0) {
749-
LogPrint(BCLog::NET, "CHECKSUM ERROR (%s, %u bytes), expected %s was %s, peer=%d\n",
749+
LogPrint(BCLog::NET, "Header error: Wrong checksum (%s, %u bytes), expected %s was %s, peer=%d\n",
750750
SanitizeString(msg->m_command), msg->m_message_size,
751751
HexStr(Span<uint8_t>(hash.begin(), hash.begin() + CMessageHeader::CHECKSUM_SIZE)),
752752
HexStr(hdr.pchChecksum),
753753
m_node_id);
754754
out_err_raw_size = msg->m_raw_message_size;
755755
msg = std::nullopt;
756756
} else if (!hdr.IsCommandValid()) {
757-
LogPrint(BCLog::NET, "HEADER ERROR - COMMAND (%s, %u bytes), peer=%d\n",
757+
LogPrint(BCLog::NET, "Header error: Invalid message type (%s, %u bytes), peer=%d\n",
758758
SanitizeString(hdr.GetCommand()), msg->m_message_size, m_node_id);
759759
out_err_raw_size = msg->m_raw_message_size;
760760
msg.reset();

test/functional/p2p_invalid_messages.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def test_duplicate_version_msg(self):
104104
def test_magic_bytes(self):
105105
self.log.info("Test message with invalid magic bytes disconnects peer")
106106
conn = self.nodes[0].add_p2p_connection(P2PDataStore())
107-
with self.nodes[0].assert_debug_log(['HEADER ERROR - MESSAGESTART received ffffffff']):
107+
with self.nodes[0].assert_debug_log(['Header error: Wrong MessageStart ffffffff received']):
108108
msg = conn.build_message(msg_unrecognized(str_data="d"))
109109
# modify magic bytes
110110
msg = b'\xff' * 4 + msg[4:]
@@ -115,7 +115,7 @@ def test_magic_bytes(self):
115115
def test_checksum(self):
116116
self.log.info("Test message with invalid checksum logs an error")
117117
conn = self.nodes[0].add_p2p_connection(P2PDataStore())
118-
with self.nodes[0].assert_debug_log(['CHECKSUM ERROR (badmsg, 2 bytes), expected 78df0a04 was ffffffff']):
118+
with self.nodes[0].assert_debug_log(['Header error: Wrong checksum (badmsg, 2 bytes), expected 78df0a04 was ffffffff']):
119119
msg = conn.build_message(msg_unrecognized(str_data="d"))
120120
# Checksum is after start bytes (4B), message type (12B), len (4B)
121121
cut_len = 4 + 12 + 4
@@ -130,7 +130,7 @@ def test_checksum(self):
130130
def test_size(self):
131131
self.log.info("Test message with oversized payload disconnects peer")
132132
conn = self.nodes[0].add_p2p_connection(P2PDataStore())
133-
with self.nodes[0].assert_debug_log(['HEADER ERROR - SIZE (badmsg, 4000001 bytes)']):
133+
with self.nodes[0].assert_debug_log(['Header error: Size too large (badmsg, 4000001 bytes)']):
134134
msg = msg_unrecognized(str_data="d" * (VALID_DATA_LIMIT + 1))
135135
msg = conn.build_message(msg)
136136
conn.send_raw_message(msg)
@@ -140,7 +140,7 @@ def test_size(self):
140140
def test_msgtype(self):
141141
self.log.info("Test message with invalid message type logs an error")
142142
conn = self.nodes[0].add_p2p_connection(P2PDataStore())
143-
with self.nodes[0].assert_debug_log(['HEADER ERROR - COMMAND']):
143+
with self.nodes[0].assert_debug_log(['Header error: Invalid message type']):
144144
msg = msg_unrecognized(str_data="d")
145145
msg = conn.build_message(msg)
146146
# Modify msgtype

0 commit comments

Comments
 (0)