This is a solution to some problems that have been found locally when running the fuzzer for a long time. The fuzzer keeps on fuzzing, and has found a way to trigger a consistency check to fail when a client intentionally sends different messages - unordered and ordered - using the same TSNs. As the reassembly queue has different handling of ordered and unordered chunks due to how they are reassembled, it will not notice if it receives two different chunks with the same TSN. They will both go to their respective reassembly streams, as those are separate by design. The data tracker - which keeps track of all received DATA chunks as it needs to generate SACKs, has a global understanding of all received chunks. By having it indicate if this is a duplicate received chunk, the socket can avoid forwarding both chunks to the reassembly queue; only one chunk will get there. Bug: None Change-Id: I602a8552a9a4c853684fcf105309ec3d8073f2c2 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256110 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Victor Boivie <boivie@webrtc.org> Cr-Commit-Position: refs/heads/main@{#36316} |
||
|---|---|---|
| .. | ||
| common | ||
| fuzzers | ||
| packet | ||
| public | ||
| rx | ||
| socket | ||
| testing | ||
| timer | ||
| tx | ||
| BUILD.gn | ||
| OWNERS | ||