Problem: Outbound transports encode message types in a fixed 12-byte field, but CConnman did not ensure internal callers respected this limit before queuing messages.
An oversized type aborts V1 encoding, while V2 can overwrite the first payload byte or write past its encoding buffer.
Normal outbound payloads are also expected to stay within the 4 MB protocol limit, but the send path did not enforce this invariant.
Fix: Treat oversized types and payloads as failed assumptions in CConnman::PushMessage() before they enter the send queue.
Debug and fuzz builds expose invalid internal callers, while release builds log and drop the messages.
The testing-only sendmsgtopeer RPC rejects oversized payloads before calling PushMessage(), while p2p_invalid_messages.py continues to cover inbound handling.