Limit kretprobe maximum instance up to MAXACTIVE_ALLOC. Without this limit, kretprobe user can specify huge number (e.g. forget to zero-fill struct kretprobe) to maxactive and may cause out-of-memory.
Signed-off-by: Masami Hiramatsu <mhira...@kernel.org> --- kernel/kprobes.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 75c5390..f1bebcf 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -1942,6 +1942,9 @@ int register_kretprobe(struct kretprobe *rp) rp->kp.break_handler = NULL; /* Pre-allocate memory for max kretprobe instances */ + if (rp->maxactive > KRETPROBE_MAXACTIVE_ALLOC) + return -E2BIG; + if (rp->maxactive <= 0) { #ifdef CONFIG_PREEMPT rp->maxactive = max_t(unsigned int, 10, 2*num_possible_cpus()); -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html