diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 48776d23b44e..78daffc47489 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -8906,6 +8906,10 @@ static void reg_set_min_max(struct bpf_reg_state *true_reg, } break; case BPF_JSET: + /* Forget the ranges before narrowing tnums, to avoid invariant + * violations if we're on a dead branch. + */ + __mark_reg_unbounded(false_reg); if (is_jmp32) { false_32off = tnum_and(false_32off, tnum_const(~val32)); if (is_power_of_2(val32))