Re: [PATCH bpf-next v1 04/14] bpf: Drop dead spill diagnostic condition
Eduard Zingerman <[email protected]>
| Newsgroups | org.kernel.vger.bpf |
|---|---|
| Message-ID | <[email protected]> |
On Sun, 2026-08-16 at 03:57 +0200, Kumar Kartikeya Dwivedi wrote: > diag_record_mod() appears to allow identical spill events to be suppressed, > but diag_mod_keeps_lineage() only accepts register write events. The spill > producer also supplies a stack target and an explicit origin, so a spill can > never satisfy this conjunction. > > Restrict the condition to writes to reflect the filter's actual contract and > avoid suggesting that it applies to spills. > > Link: https://lore.kernel.org/bpf/48e6f021b89562f68850fe21ef8c78719819b04cf9c4e4f50bc791937d37ace8@mail.kernel.org/ > Signed-off-by: Kumar Kartikeya Dwivedi <[email protected]> > --- > kernel/bpf/diagnostics.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/kernel/bpf/diagnostics.c b/kernel/bpf/diagnostics.c > index 33b7d9e8e2c3..37ed22a764e0 100644 > --- a/kernel/bpf/diagnostics.c > +++ b/kernel/bpf/diagnostics.c > @@ -1531,8 +1531,7 @@ static void diag_record_mod(struct bpf_verifier_env *env, u32 insn_idx, > } else if (diag_mod_insn_origin(env, insn_idx, &target, &event.mod.origin)) { > event.mod.origin_valid = true; > } > - if (old_reg && new_reg && > - (reason == BPF_DIAG_MOD_WRITE || reason == BPF_DIAG_MOD_SPILL) && > + if (old_reg && new_reg && reason == BPF_DIAG_MOD_WRITE && > !memcmp(&event.mod.old, &event.mod.new, sizeof(event.mod.old)) && > !event.mod.origin_valid && > diag_mod_keeps_lineage(env, &event)) Q: does this filter ever fires? The condition appears to be very narrow.