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.
A packet that netmap delivers across several ring slots was handed to the rest of the code as the first slot buffer together with the summed length of all the slots. When those slot buffers were not next to each other in memory this read past the first buffer, which could crash the process or leak bytes from unrelated buffers into inspection, pcap output and IPS or tap forwarding. Multi-slot packets are now copied slot by slot into a per-thread buffer so the caller always gets one addressable frame, and such packets are always copied into the Packet instead of being referenced zero-copy. Single-slot packets keep the zero-copy path. The walk over the fragment slots is bounded by the slots we own and the total length is capped, so a broken or over-long chain is dropped as one unit and the ring keeps moving forward. Adds unit tests that build a fake ring and cover single-slot, adjacent, non-adjacent, ring-wrap, empty-fragment, over-size and never-ending chains. Ticket: #8777 |
4 days ago | |
|---|---|---|
| .. | ||
| fuzz | 4 weeks ago | |
| app-layer-htp-file.c | ||
| detect-bsize.c | ||
| detect-engine-alert.c | ||
| detect-engine-content-inspection.c | ||
| detect-etherhdr.c | ||
| detect-file-data.c | 2 months ago | |
| detect-http-client-body.c | ||
| detect-http-cookie.c | ||
| detect-http-header.c | ||
| detect-http-host.c | ||
| detect-http-method.c | ||
| detect-http-raw-header.c | ||
| detect-http-server-body.c | ||
| detect-http-stat-code.c | ||
| detect-http-stat-msg.c | ||
| detect-http-uri.c | ||
| detect-http-user-agent.c | ||
| detect-http2.c | ||
| detect-icmpv4hdr.c | ||
| detect-icmpv6-mtu.c | ||
| detect-icmpv6hdr.c | ||
| detect-igmphdr.c | ||
| detect-ipaddr.c | ||
| detect-ipv4hdr.c | ||
| detect-ipv6hdr.c | ||
| detect-parse.c | ||
| detect-ssl-state.c | ||
| detect-ssl-version.c | ||
| detect-tcphdr.c | ||
| detect-template.c | ||
| detect-tls-cert-fingerprint.c | ||
| detect-tls-cert-issuer.c | ||
| detect-tls-cert-serial.c | ||
| detect-tls-cert-subject.c | ||
| detect-tls-cert-validity.c | ||
| detect-tls-certs.c | ||
| detect-tls-version.c | ||
| detect-transform-pcrexform.c | ||
| detect-ttl.c | ||
| detect-udphdr.c | ||
| detect.c | 3 weeks ago | |
| output-json-stats.c | ||
| reputation.c | ||
| source-netmap.c | 4 days ago | |
| source-pcap.c | ||
| stream-tcp-inline.c | ||
| stream-tcp-list.c | ||
| stream-tcp-reassemble.c | ||
| stream-tcp.c | 3 weeks ago | |