> > 在 2021/4/21 19:43, Ananyev, Konstantin 写道: > >> > >> 'rd->u.max = rd->u.max' is meaningless which should be deleted. > >> > >> This patch fixed it. > >> > >> Fixes: 8021917293d0 ("bpf: add extra validation for input BPF program") > >> Cc: sta...@dpdk.org > > > > As I remember, I did it on purpose. > > Some old (but still supported) version of clang complained > > about unitialized variable. > > Well, how about like this ? > uint64_t tmp = rd->u.max; > if (op == BPF_MOD) > tmp = RTE_MIN(tmp, tmp - 1); > rd->u.max = tmp;
Then, I think it should be: tmp = RTE_MIN(tmp, rs->u.max - 1); Or just leave things as they are right now. Nothing is broken here. > > > >> Signed-off-by: Min Hu (Connor) <humi...@huawei.com> > >> --- > >> lib/librte_bpf/bpf_validate.c | 2 -- > >> 1 file changed, 2 deletions(-) > >> > >> diff --git a/lib/librte_bpf/bpf_validate.c b/lib/librte_bpf/bpf_validate.c > >> index 9214f15..c5ad951 100644 > >> --- a/lib/librte_bpf/bpf_validate.c > >> +++ b/lib/librte_bpf/bpf_validate.c > >> @@ -517,8 +517,6 @@ eval_divmod(uint32_t op, struct bpf_reg_val *rd, > >> struct bpf_reg_val *rs, > >> } else { > >> if (op == BPF_MOD) > >> rd->u.max = RTE_MIN(rd->u.max, rs->u.max - 1); > >> - else > >> - rd->u.max = rd->u.max; > >> rd->u.min = 0; > >> } > >> > >> -- > >> 2.7.4 > > > > . > >