diff options
author | Jiri Olsa <[email protected]> | 2022-08-02 15:56:51 +0200 |
---|---|---|
committer | Andrii Nakryiko <[email protected]> | 2022-08-05 09:43:58 -0700 |
commit | 62d468e5e10012e8b67d066ba7bac0a8afdc3cee (patch) | |
tree | e59c70f1f60ed7ea69378edc72483190cb7d1706 | |
parent | e2dcac2f58f5a95ab092d1da237ffdc0da1832cf (diff) |
bpf: Cleanup ftrace hash in bpf_trampoline_put
We need to release possible hash from trampoline fops object
before removing it, otherwise we leak it.
Fixes: 00963a2e75a8 ("bpf: Support bpf_trampoline on functions with IPMODIFY (e.g. livepatch)")
Signed-off-by: Jiri Olsa <[email protected]>
Signed-off-by: Andrii Nakryiko <[email protected]>
Acked-by: Song Liu <[email protected]>
Link: https://lore.kernel.org/bpf/[email protected]
-rw-r--r-- | kernel/bpf/trampoline.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/bpf/trampoline.c b/kernel/bpf/trampoline.c index 0f532e6a717f..ff87e38af8a7 100644 --- a/kernel/bpf/trampoline.c +++ b/kernel/bpf/trampoline.c @@ -841,7 +841,10 @@ void bpf_trampoline_put(struct bpf_trampoline *tr) * multiple rcu callbacks. */ hlist_del(&tr->hlist); - kfree(tr->fops); + if (tr->fops) { + ftrace_free_filter(tr->fops); + kfree(tr->fops); + } kfree(tr); out: mutex_unlock(&trampoline_mutex); |