Commit 8bc74665 authored by Daniel Axtens's avatar Daniel Axtens Committed by Kleber Sacilotto de Souza

UBUNTU: SAUCE: (no-up) arch/x86/bpf: Fix missed return statement

BugLink: https://bugs.launchpad.net/bugs/1745364

Coverity reports:

*** CID 1464330: Uninitialized variables (MISSING_RETURN)
/arch/x86/net/bpf_jit_comp.c: 1088 in bpf_int_jit_compile()
1082 int i;
1083 1084 if (!bpf_jit_enable)
1085 return prog;
1086 1087 if (!prog || !prog->len)
>>> >>> CID 1464330: Uninitialized variables (MISSING_RETURN)
>>> >>> Arriving at the end of a function without returning a value.
1088 return;
1089 1090 addrs = kmalloc(prog->len * sizeof(*addrs), GFP_KERNEL);
1091 if (!addrs)
1092 return prog;
1093

This is a result of
3098d8ea ("bpf: prepare bpf_int_jit_compile/bpf_prog_select_runtime apis"),
which is a cherry-pick of d1c55ab5 upstream. In that patch, the
return type of bpf_int_jit_compile was changed from void to
struct bpf_prog*. That patch changed some of the return statements.

It did not change the return statement of the (!prog || !prog->len)
check, as in upstream the (!prog || !prog->len) check was dropped
in 93a73d44 ("bpf, x86/arm64: remove useless checks on prog"):

"""
There is never such a situation, where bpf_int_jit_compile() is
called with either prog as NULL or len as 0, so the tests are
unnecessary and confusing as people would just copy them.
"""

However, we haven't picked up 93a73d44, so when we cherry-picked
d1c55ab5, that branch remained unmodified, hence the static
analysis warning.

For consistency and in case the branch is not actually dead on Xenial,
do a fixup to 'return prog;'

Fixes: 3098d8ea ("bpf: prepare bpf_int_jit_compile/bpf_prog_select_runtime apis")
Cc: Andy Whitcroft <apw@canonical.com>
Cc: Colin King <colin.king@canonical.com>
Signed-off-by: default avatarDaniel Axtens <daniel.axtens@canonical.com>
Acked-by: default avatarKleber Sacilotto de Souza <kleber.souza@canonical.com>
Acked-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
[klebers: fixed context]
Signed-off-by: default avatarKleber Sacilotto de Souza <kleber.souza@canonical.com>
parent 37b27bd5
......@@ -1080,7 +1080,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
return prog;
if (!prog || !prog->len)
return;
return prog;
if (bpf_jit_fence_present() && bpf_jit_blinding_enabled())
bpf_jit_fence = 1;
......
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