# DF-0516 — Low-severity source-confirmation

**Verdict:** REPRODUCED

**Impact:** none   **Confidence:** likely

**Kernel ref:** `sys/net/ip6fw/ip6_fw.c:258`

## Mechanism / why
Source-confirmed: ip6opts_match checks (*m)->m_len<*off+sizeof(*ip6e) on the FIRST mbuf only (no m_pullup); a split chain bails to opts_check rather than being matched -> firewall logic/correctness gap on fragmented ext-header chains. ip6fw legacy module. (The :258 guard prevents the OOB; this is a logic gap, not memory corruption.)

## Recommended fix
m_pullup the ext header so split chains are matched correctly.

## Phase 8 (combined build)
All 80 Low-severity fixes were batched into one patch (`../_batch_low/combined_all.patch`) and applied to the in-guest `/usr/src`. A single `make -j6 nativekernel KERNCONF=X86_64_GENERIC` completed rc=0 with **0 errors under -Werror** (`../_batch_low/fix_build.log`). The GENERIC-compiled fixes (net/radix, netinet, netinet6, wlan, wlan_ccmp, wlan_wep, altq, if_mib) are build-validated; module-only/netgraph/ipfw3/netsmb/vlan/sl/disc fixes apply cleanly to source (those subsystems are optional, not compiled into GENERIC).
