Commit f18a4997 authored by Alexei Starovoitov's avatar Alexei Starovoitov

bpf: Silence coverity false positive warning.

Coverity issued the following warning:
6685            cands = bpf_core_add_cands(cands, main_btf, 1);
6686            if (IS_ERR(cands))
>>>     CID 1510300:    (RETURN_LOCAL)
>>>     Returning pointer "cands" which points to local variable "local_cand".
6687                    return cands;

It's a false positive.
Add ERR_CAST() to silence it.
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 4674f210
...@@ -6656,7 +6656,7 @@ bpf_core_find_cands(struct bpf_core_ctx *ctx, u32 local_type_id) ...@@ -6656,7 +6656,7 @@ bpf_core_find_cands(struct bpf_core_ctx *ctx, u32 local_type_id)
main_btf = bpf_get_btf_vmlinux(); main_btf = bpf_get_btf_vmlinux();
if (IS_ERR(main_btf)) if (IS_ERR(main_btf))
return (void *)main_btf; return ERR_CAST(main_btf);
local_type = btf_type_by_id(local_btf, local_type_id); local_type = btf_type_by_id(local_btf, local_type_id);
if (!local_type) if (!local_type)
...@@ -6683,14 +6683,14 @@ bpf_core_find_cands(struct bpf_core_ctx *ctx, u32 local_type_id) ...@@ -6683,14 +6683,14 @@ bpf_core_find_cands(struct bpf_core_ctx *ctx, u32 local_type_id)
/* Attempt to find target candidates in vmlinux BTF first */ /* Attempt to find target candidates in vmlinux BTF first */
cands = bpf_core_add_cands(cands, main_btf, 1); cands = bpf_core_add_cands(cands, main_btf, 1);
if (IS_ERR(cands)) if (IS_ERR(cands))
return cands; return ERR_CAST(cands);
/* cands is a pointer to kmalloced memory here if cands->cnt > 0 */ /* cands is a pointer to kmalloced memory here if cands->cnt > 0 */
/* populate cache even when cands->cnt == 0 */ /* populate cache even when cands->cnt == 0 */
cc = populate_cand_cache(cands, vmlinux_cand_cache, VMLINUX_CAND_CACHE_SIZE); cc = populate_cand_cache(cands, vmlinux_cand_cache, VMLINUX_CAND_CACHE_SIZE);
if (IS_ERR(cc)) if (IS_ERR(cc))
return cc; return ERR_CAST(cc);
/* if vmlinux BTF has any candidate, don't go for module BTFs */ /* if vmlinux BTF has any candidate, don't go for module BTFs */
if (cc->cnt) if (cc->cnt)
...@@ -6716,7 +6716,7 @@ bpf_core_find_cands(struct bpf_core_ctx *ctx, u32 local_type_id) ...@@ -6716,7 +6716,7 @@ bpf_core_find_cands(struct bpf_core_ctx *ctx, u32 local_type_id)
cands = bpf_core_add_cands(cands, mod_btf, btf_nr_types(main_btf)); cands = bpf_core_add_cands(cands, mod_btf, btf_nr_types(main_btf));
if (IS_ERR(cands)) { if (IS_ERR(cands)) {
btf_put(mod_btf); btf_put(mod_btf);
return cands; return ERR_CAST(cands);
} }
spin_lock_bh(&btf_idr_lock); spin_lock_bh(&btf_idr_lock);
btf_put(mod_btf); btf_put(mod_btf);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment