From: Jerin Jacob <jer...@marvell.com>

bpf_validate does not allow to execute
RTE_BPF_ARG_PTR_STACK for no reason.
Fix it by enhancing the prog_arg.type check.

Fixes: 6e12ec4c4d6d ("bpf: add more checks")
Cc: sta...@dpdk.org

Signed-off-by: Jerin Jacob <jer...@marvell.com>
---
 lib/librte_bpf/bpf_validate.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/librte_bpf/bpf_validate.c b/lib/librte_bpf/bpf_validate.c
index 0cf41fa27..c75777b6d 100644
--- a/lib/librte_bpf/bpf_validate.c
+++ b/lib/librte_bpf/bpf_validate.c
@@ -2216,6 +2216,7 @@ bpf_validate(struct rte_bpf *bpf)
 
        /* check input argument type, don't allow mbuf ptr on 32-bit */
        if (bpf->prm.prog_arg.type != RTE_BPF_ARG_RAW &&
+                       bpf->prm.prog_arg.type != RTE_BPF_ARG_PTR_STACK &&
                        bpf->prm.prog_arg.type != RTE_BPF_ARG_PTR &&
                        (sizeof(uint64_t) != sizeof(uintptr_t) ||
                        bpf->prm.prog_arg.type != RTE_BPF_ARG_PTR_MBUF)) {
-- 
2.22.0

Reply via email to