linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] kretprobe: avoid re-registration of the same kretprobe earlier
@ 2020-11-24 11:57 Wang ShaoBo
  2020-11-30 21:18 ` Steven Rostedt
  0 siblings, 1 reply; 14+ messages in thread
From: Wang ShaoBo @ 2020-11-24 11:57 UTC (permalink / raw)
  To: naveen.n.rao
  Cc: anil.s.keshavamurthy, davem, rostedt, linux-kernel, huawei.libin,
	cj.chengjian

Our system encountered a re-init error when re-registering same kretprobe,
where the kretprobe_instance in rp->free_instances is illegally accessed
after re-init.

Implementation to avoid re-registration has been introduced for kprobe
before, but lags for register_kretprobe(). We must check if kprobe has
been re-registered before re-initializing kretprobe, otherwise it will
destroy the data struct of kretprobe registered, which can lead to memory
leak, system crash, also some unexpected behaviors.

we use check_kprobe_rereg() to check if kprobe has been re-registered
before calling register_kretprobe(), for giving a warning message and
terminate registration process.

Signed-off-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
Signed-off-by: Cheng Jian <cj.chengjian@huawei.com>
---
 kernel/kprobes.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index 41fdbb7953c6..7f54a70136f3 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -2117,6 +2117,14 @@ int register_kretprobe(struct kretprobe *rp)
 		}
 	}
 
+	/*
+	 * Return error if it's being re-registered,
+	 * also give a warning message to the developer.
+	 */
+	ret = check_kprobe_rereg(&rp->kp);
+	if (WARN_ON(ret))
+		return ret;
+
 	rp->kp.pre_handler = pre_handler_kretprobe;
 	rp->kp.post_handler = NULL;
 	rp->kp.fault_handler = NULL;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-01-29  3:38 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-24 11:57 [PATCH] kretprobe: avoid re-registration of the same kretprobe earlier Wang ShaoBo
2020-11-30 21:18 ` Steven Rostedt
2020-12-01 23:32   ` Masami Hiramatsu
2020-12-02  1:23     ` Wangshaobo (bobo)
2020-12-02  1:27       ` Steven Rostedt
2020-12-14 16:36       ` Steven Rostedt
2020-12-15  3:31       ` Masami Hiramatsu
2020-12-15  8:39         ` Wangshaobo (bobo)
2020-12-21 13:31         ` Wangshaobo (bobo)
2020-12-22 11:03           ` Masami Hiramatsu
2021-01-13 22:48             ` Steven Rostedt
2021-01-14  0:25               ` Masami Hiramatsu
2021-01-14  1:06                 ` Wangshaobo (bobo)
2021-01-29  3:37             ` Wangshaobo (bobo)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).