bpf: Unify and simplify btf_func_proto_check error handling
Replace 'err = x; break;' with 'return x;'. Suggested-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/bpf/20221124002838.2700179-1-sdf@google.com
This commit is contained in:
parent
72b43bde38
commit
5bad3587b7
@ -4779,7 +4779,6 @@ static int btf_func_proto_check(struct btf_verifier_env *env,
|
||||
nr_args--;
|
||||
}
|
||||
|
||||
err = 0;
|
||||
for (i = 0; i < nr_args; i++) {
|
||||
const struct btf_type *arg_type;
|
||||
u32 arg_type_id;
|
||||
@ -4788,8 +4787,7 @@ static int btf_func_proto_check(struct btf_verifier_env *env,
|
||||
arg_type = btf_type_by_id(btf, arg_type_id);
|
||||
if (!arg_type) {
|
||||
btf_verifier_log_type(env, t, "Invalid arg#%u", i + 1);
|
||||
err = -EINVAL;
|
||||
break;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (btf_type_is_resolve_source_only(arg_type)) {
|
||||
@ -4802,25 +4800,23 @@ static int btf_func_proto_check(struct btf_verifier_env *env,
|
||||
!btf_name_valid_identifier(btf, args[i].name_off))) {
|
||||
btf_verifier_log_type(env, t,
|
||||
"Invalid arg#%u", i + 1);
|
||||
err = -EINVAL;
|
||||
break;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (btf_type_needs_resolve(arg_type) &&
|
||||
!env_type_is_resolved(env, arg_type_id)) {
|
||||
err = btf_resolve(env, arg_type, arg_type_id);
|
||||
if (err)
|
||||
break;
|
||||
return err;
|
||||
}
|
||||
|
||||
if (!btf_type_id_size(btf, &arg_type_id, NULL)) {
|
||||
btf_verifier_log_type(env, t, "Invalid arg#%u", i + 1);
|
||||
err = -EINVAL;
|
||||
break;
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
return err;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int btf_func_check(struct btf_verifier_env *env,
|
||||
|
Loading…
x
Reference in New Issue
Block a user