Skip to content

fix SIGSEGV at flame throughput#32

Open
x-stp wants to merge 10 commits into
hadriansecurity:mainfrom
x-stp:fix/sigsegv-highqps
Open

fix SIGSEGV at flame throughput#32
x-stp wants to merge 10 commits into
hadriansecurity:mainfrom
x-stp:fix/sigsegv-highqps

Conversation

@x-stp

@x-stp x-stp commented Apr 19, 2026

Copy link
Copy Markdown

std::get on an IPv6 reply -> bad_variant_access. Guarded it,
plus the surrounding mess:

  • worker: variant guard; accept any configured resolver; drop bogus
    mbufs (data_len 0 or >4 KiB); re-check worker_id after ring transit;
    fix spdlog format-arg miscount

  • dns_packet: missing break in fmt formatter; bounds-check RData
    before std::span ctor

  • dpdk: address-of rte_ipv6_hdr::{src,dst}_addr for 25.11 ABI

  • cmake: PMDs are optional (looking at you, Btw)

  • tests: 7 regressions

// Pepijn

Comment thread src/worker.cpp
#include "scanner_config.h"

// Larger than any sane DNS/UDP response; guards against bogus mbuf data_len.
static constexpr uint16_t MAX_SANE_PKT_LEN = 4096;

@x-stp x-stp Apr 19, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EDNS(0) support not found per issue, nor as addressed or planned for in codebase; in case of planning; may wanna bump over to 9k for Jumbo''s, or tag it in docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant