From 3a49def0ac997659df2d31e8c0eb95fddaff832c Mon Sep 17 00:00:00 2001 From: Yonghong Song Date: Wed, 24 Aug 2022 11:21:15 +0800 Subject: [PATCH] bpf: Change return value of verifier function add_subprog() mainline inclusion from mainline-5.13-rc1 commit 282a0f46d6cda7cf843cd77c9b53b4d1d9e31302 category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I5EUVD CVE: NA Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=282a0f46d6cda7cf843cd77c9b53b4d1d9e31302 ------------------------------------------------- Currently, verifier function add_subprog() returns 0 for success and negative value for failure. Change the return value to be the subprog number for success. This functionality will be used in the next patch to save a call to find_subprog(). Signed-off-by: Yonghong Song Signed-off-by: Alexei Starovoitov Acked-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20210226204924.3884848-1-yhs@fb.com (cherry picked from commit 282a0f46d6cda7cf843cd77c9b53b4d1d9e31302) Signed-off-by: Wang Yufen --- kernel/bpf/verifier.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 3c9afbee4f2a..2cf056148e9f 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -1513,7 +1513,7 @@ static int add_subprog(struct bpf_verifier_env *env, int off) } ret = find_subprog(env, off); if (ret >= 0) - return 0; + return ret; if (env->subprog_cnt >= BPF_MAX_SUBPROGS) { verbose(env, "too many subprograms\n"); return -E2BIG; @@ -1521,7 +1521,7 @@ static int add_subprog(struct bpf_verifier_env *env, int off) env->subprog_info[env->subprog_cnt++].start = off; sort(env->subprog_info, env->subprog_cnt, sizeof(env->subprog_info[0]), cmp_subprogs, NULL); - return 0; + return env->subprog_cnt - 1; } static int check_subprogs(struct bpf_verifier_env *env) -- GitLab