From: Xu Kuohai xukuohai@huawei.com
dst_reg is marked as unknown when BPF_MOD instruction is verified, causing the following bpf prog to be incorrectly rejected.
0: r0 = 0 1: r0 %= 10 // r0 is marked as unknown 2: r1 = 0 3: r1 += 1 4: if r1 < r0 goto pc-2 // verifier concludes the loop is unbounded 5: exit
To teach verifier to accept the above prog, this series adds bound tracking for BPF_MOD.
Xu Kuohai (2): bpf: add bound tracking for BPF_MOD selftests/bpf: check if verifier tracks dst_reg bound for BPF_MOD
kernel/bpf/verifier.c | 98 +++++++- tools/testing/selftests/bpf/verifier/mod.c | 247 +++++++++++++++++++++ 2 files changed, 340 insertions(+), 5 deletions(-) create mode 100644 tools/testing/selftests/bpf/verifier/mod.c