diff options
author | Alexei Starovoitov <ast@kernel.org> | 2018-05-02 12:35:47 -0700 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2018-05-02 12:35:48 -0700 |
commit | 0f58e58e2803a83753f7e626cd3654cea601308d (patch) | |
tree | 90948a3fd08f29e11319d8abd69b4af30db21070 | |
parent | a4e21ff8d9a311b16cfa9e41aed0c627a47149a4 (diff) | |
parent | 39f56ca945af86112753646316c4c92dcd4acd82 (diff) | |
download | linux-0f58e58e2803a83753f7e626cd3654cea601308d.tar.gz linux-0f58e58e2803a83753f7e626cd3654cea601308d.tar.bz2 linux-0f58e58e2803a83753f7e626cd3654cea601308d.zip |
Merge branch 'x86-bpf-jit-fixes'
Daniel Borkmann says:
====================
Fix two memory leaks in x86 JIT. For details, please see
individual patches in this series. Thanks!
====================
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-rw-r--r-- | arch/x86/net/bpf_jit_comp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c index abce27ceb411..263c8453815e 100644 --- a/arch/x86/net/bpf_jit_comp.c +++ b/arch/x86/net/bpf_jit_comp.c @@ -1236,6 +1236,7 @@ skip_init_addrs: for (pass = 0; pass < 20 || image; pass++) { proglen = do_jit(prog, addrs, image, oldproglen, &ctx); if (proglen <= 0) { +out_image: image = NULL; if (header) bpf_jit_binary_free(header); @@ -1246,8 +1247,7 @@ skip_init_addrs: if (proglen != oldproglen) { pr_err("bpf_jit: proglen=%d != oldproglen=%d\n", proglen, oldproglen); - prog = orig_prog; - goto out_addrs; + goto out_image; } break; } @@ -1283,7 +1283,7 @@ skip_init_addrs: prog = orig_prog; } - if (!prog->is_func || extra_pass) { + if (!image || !prog->is_func || extra_pass) { out_addrs: kfree(addrs); kfree(jit_data); |