diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2023-02-28 16:56:20 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2023-02-28 16:56:20 +0000 |
commit | 5f7bea2952830ae60d4b65dafdc8411ac9d991f0 (patch) | |
tree | 9f60c8af809fb4cd93a7eea5524e216067c4c4a2 /sys/net/iflib.c | |
parent | ce95864fbad87b53f17c625d3b72318764446f00 (diff) | |
download | src-5f7bea2952830ae60d4b65dafdc8411ac9d991f0.tar.gz src-5f7bea2952830ae60d4b65dafdc8411ac9d991f0.zip |
iflib: fix regression with new pfil(9) KPI
Do not pass the pointer to our valid mbuf to pfil(9). Pass an
uninitialized one only. This was unsafe with the old KPI, too,
but for some reason didn't fail.
Fixes: caf32b260ad46b17a4c1a8ce6383e37ac489f023
Diffstat (limited to 'sys/net/iflib.c')
-rw-r--r-- | sys/net/iflib.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net/iflib.c b/sys/net/iflib.c index 39f3ccea4317..807ada5eb754 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -2713,7 +2713,6 @@ rxd_frag_to_sd(iflib_rxq_t rxq, if_rxd_frag_t irf, bool unload, if_rxsd_t sd, cidx = irf->irf_idx; fl = &rxq->ifr_fl[flid]; sd->ifsd_fl = fl; - m = fl->ifl_sds.ifsd_m[cidx]; sd->ifsd_cl = &fl->ifl_sds.ifsd_cl[cidx]; fl->ifl_credits--; #if MEMORY_LOGGING @@ -2754,12 +2753,14 @@ rxd_frag_to_sd(iflib_rxq_t rxq, if_rxd_frag_t irf, bool unload, if_rxsd_t sd, * Filter said it was OK, so receive like * normal */ + m = fl->ifl_sds.ifsd_m[cidx]; fl->ifl_sds.ifsd_m[cidx] = NULL; break; default: MPASS(0); } } else { + m = fl->ifl_sds.ifsd_m[cidx]; fl->ifl_sds.ifsd_m[cidx] = NULL; if (pf_rv != NULL) *pf_rv = PFIL_PASS; |