在 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;


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

.

Reply via email to