kprobe: reverse kp->flags when arm_kprobe failed
commit4a6f316d68upstream. In aggregate kprobe case, when arm_kprobe failed, we need set the kp->flags with KPROBE_FLAG_DISABLED again. If not, the 'kp' kprobe will been considered as enabled but it actually not enabled. Link: https://lore.kernel.org/all/20220902155820.34755-1-liq3ea@163.com/ Fixes:12310e3437("kprobes: Propagate error from arm_kprobe_ftrace()") Cc: stable@vger.kernel.org Signed-off-by: Li Qiang <liq3ea@163.com> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bef08acbe5
commit
f100a02748
1 changed files with 4 additions and 1 deletions
|
|
@ -2335,8 +2335,11 @@ int enable_kprobe(struct kprobe *kp)
|
||||||
if (!kprobes_all_disarmed && kprobe_disabled(p)) {
|
if (!kprobes_all_disarmed && kprobe_disabled(p)) {
|
||||||
p->flags &= ~KPROBE_FLAG_DISABLED;
|
p->flags &= ~KPROBE_FLAG_DISABLED;
|
||||||
ret = arm_kprobe(p);
|
ret = arm_kprobe(p);
|
||||||
if (ret)
|
if (ret) {
|
||||||
p->flags |= KPROBE_FLAG_DISABLED;
|
p->flags |= KPROBE_FLAG_DISABLED;
|
||||||
|
if (p != kp)
|
||||||
|
kp->flags |= KPROBE_FLAG_DISABLED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
mutex_unlock(&kprobe_mutex);
|
mutex_unlock(&kprobe_mutex);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue