bpf: fix unreachable statement

Message ID 1619076601-30228-1-git-send-email-humin29@huawei.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series bpf: fix unreachable statement |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot success github build: passed
ci/Intel-compilation fail apply issues

Commit Message

humin (Q) April 22, 2021, 7:30 a.m. UTC
  From: HongBo Zheng <zhenghongbo3@huawei.com>

In function 'eval_jcc', judgment 'op == EBPF_JLT' occurs
twice, as a result, the corresponding second statement
cannot be accessed.

This patch fix this problem.

Fixes: 8021917293d0 ("bpf: add extra validation for input BPF program")
Cc: stable@dpdk.org

Signed-off-by: HongBo Zheng <zhenghongbo3@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 lib/librte_bpf/bpf_validate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Ananyev, Konstantin April 22, 2021, 11:23 a.m. UTC | #1
> From: HongBo Zheng <zhenghongbo3@huawei.com>
> 
> In function 'eval_jcc', judgment 'op == EBPF_JLT' occurs
> twice, as a result, the corresponding second statement
> cannot be accessed.
> 
> This patch fix this problem.
> 
> Fixes: 8021917293d0 ("bpf: add extra validation for input BPF program")
> Cc: stable@dpdk.org
> 
> Signed-off-by: HongBo Zheng <zhenghongbo3@huawei.com>
> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
> ---
>  lib/librte_bpf/bpf_validate.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_bpf/bpf_validate.c b/lib/librte_bpf/bpf_validate.c
> index 9214f15..7b1291b 100644
> --- a/lib/librte_bpf/bpf_validate.c
> +++ b/lib/librte_bpf/bpf_validate.c
> @@ -1115,7 +1115,7 @@ eval_jcc(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
>  		eval_jsgt_jsle(trd, trs, frd, frs);
>  	else if (op == EBPF_JSLE)
>  		eval_jsgt_jsle(frd, frs, trd, trs);
> -	else if (op == EBPF_JLT)
> +	else if (op == EBPF_JSLT)
>  		eval_jslt_jsge(trd, trs, frd, frs);
>  	else if (op == EBPF_JSGE)
>  		eval_jslt_jsge(frd, frs, trd, trs);
> --

Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

> 2.7.4
  
Thomas Monjalon May 5, 2021, 10:23 a.m. UTC | #2
22/04/2021 13:23, Ananyev, Konstantin:
> > From: HongBo Zheng <zhenghongbo3@huawei.com>
> > 
> > In function 'eval_jcc', judgment 'op == EBPF_JLT' occurs
> > twice, as a result, the corresponding second statement
> > cannot be accessed.
> > 
> > This patch fix this problem.
> > 
> > Fixes: 8021917293d0 ("bpf: add extra validation for input BPF program")
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: HongBo Zheng <zhenghongbo3@huawei.com>
> > Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
> 
> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

Applied, thanks
  

Patch

diff --git a/lib/librte_bpf/bpf_validate.c b/lib/librte_bpf/bpf_validate.c
index 9214f15..7b1291b 100644
--- a/lib/librte_bpf/bpf_validate.c
+++ b/lib/librte_bpf/bpf_validate.c
@@ -1115,7 +1115,7 @@  eval_jcc(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
 		eval_jsgt_jsle(trd, trs, frd, frs);
 	else if (op == EBPF_JSLE)
 		eval_jsgt_jsle(frd, frs, trd, trs);
-	else if (op == EBPF_JLT)
+	else if (op == EBPF_JSLT)
 		eval_jslt_jsge(trd, trs, frd, frs);
 	else if (op == EBPF_JSGE)
 		eval_jslt_jsge(frd, frs, trd, trs);