wire: test v2 message trailing payload rejection

This commit is contained in:
Boris Nagaev 2026-06-22 23:51:12 -05:00
parent 03aeb81a6f
commit 42077fdb4a
No known key found for this signature in database

View file

@ -347,7 +347,6 @@ func TestReadMessageWireErrors(t *testing.T) {
ErrUnknownMessage,
24,
},
}
t.Logf("Running %d tests", len(tests))
@ -428,6 +427,28 @@ func TestReadMessageTrailingBytes(t *testing.T) {
}
}
// TestReadV2MessageTrailingBytes verifies that a v2 message with unconsumed
// trailing bytes after BtcDecode is rejected with a MessageError.
func TestReadV2MessageTrailingBytes(t *testing.T) {
payload := []byte{
v2Messages[CmdInv],
0x00, // zero inventory vectors
0xaa, // trailing data not consumed by MsgInv.BtcDecode
}
_, _, err := ReadV2MessageN(
payload, ProtocolVersion, BaseEncoding,
)
if err == nil {
t.Fatal("expected error for v2 message with trailing bytes")
}
var msgErr *MessageError
if !errors.As(err, &msgErr) {
t.Fatalf("expected MessageError, got: %T (%v)", err, err)
}
}
// TestWriteMessageWireErrors performs negative tests against wire encoding from
// concrete messages to confirm error paths work correctly.
func TestWriteMessageWireErrors(t *testing.T) {