mirror of https://github.com/OISF/suricata
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
The queue-limit work computed the record tail and the chunk promise from the declared size, and added a count or a data length to it. A padded or segmented record therefore left a promise armed past the end of its record: a continuation could run on into the next RPC, an input that carries only record slack grew the out-of-order queue and truncated a file whose queued data fits, and the backstop walked the transactions of a call that holds no file transaction at all. Take the promise from the record itself, with record_tail(): what its marker claims minus what the parser holds. Keep its two halves apart: the stream side is the record tail, the queue side is the file data the tracker still misses, so a continuation queues no more than its own bytes. A pad a record carries is inside its claim, so the tail drains it; it is neither file data nor fill. Release a promise whose transaction is gone instead of consuming toward the claim, run the backstop only when the call carries data and the state holds a file transaction, and count a chunk only for input that carries file data. A consume past the end of an input is now a debug assertion, with the advance clamped to the input. Ticket: #9263. |
24 hours ago | |
|---|---|---|
| .. | ||
| .cargo | 2 years ago | |
| derive | 5 days ago | |
| ffi | 24 hours ago | |
| htp | 5 days ago | |
| src | 24 hours ago | |
| suricatactl | 5 days ago | |
| suricatasc | 5 days ago | |
| sys | 5 days ago | |
| .gitignore | 2 years ago | |
| Cargo.lock.in | 4 days ago | |
| Cargo.toml.in | 5 days ago | |
| Makefile.am | 5 days ago | |
| cbindgen.toml | 4 months ago | |
| rustfmt.toml | 3 years ago | |