Fix full transport overreading

This commit is contained in:
Lonami Exo
2023-09-02 01:15:10 +02:00
parent 5e43efc55d
commit 49c0645fcb
4 changed files with 31 additions and 2 deletions

View File

@@ -52,10 +52,10 @@ class Full(Transport):
raise ValueError(f"bad seq, expected: {self._recv_seq}, got: {seq}")
crc = struct.unpack_from("<I", input, length - 4)[0]
valid_crc = crc32(memoryview(input)[:-4])
valid_crc = crc32(memoryview(input)[: length - 4])
if crc != valid_crc:
raise ValueError(f"bad crc, expected: {valid_crc}, got: {crc}")
self._recv_seq += 1
output += memoryview(input)[8:-4]
output += memoryview(input)[8 : length - 4]
return length