parse arbitrary length Connection IDs in Version Negotiation packets

This commit is contained in:
Marten Seemann
2022-08-28 14:34:23 +03:00
parent 53412e9ba3
commit 9e0f9e62ff
9 changed files with 116 additions and 100 deletions

View File

@@ -82,16 +82,16 @@ func fuzzVNP(data []byte) int {
if err != nil {
return 0
}
hdr, versions, err := wire.ParseVersionNegotiationPacket(bytes.NewReader(data))
dest, src, versions, err := wire.ParseVersionNegotiationPacket(data)
if err != nil {
return 0
}
if !hdr.DestConnectionID.Equal(connID) {
if !bytes.Equal(dest, connID.Bytes()) {
panic("connection IDs don't match")
}
if len(versions) == 0 {
panic("no versions")
}
wire.ComposeVersionNegotiation(hdr.SrcConnectionID, hdr.DestConnectionID, versions)
wire.ComposeVersionNegotiation(src, dest, versions)
return 1
}