Commit 287c038c authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Steven Rostedt (VMware)
Browse files

tracing/probe: Check maxactive error cases

Check maxactive on kprobe error case, because maxactive
is only for kretprobe, not for kprobe. Also, maxactive
should not be 0, it should be at least 1.

Link: http://lkml.kernel.org/r/155253780952.14922.15784129810238750331.stgit@devnote2



Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 31b265b3
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -624,7 +624,11 @@ static int trace_kprobe_create(int argc, const char *argv[])
	if (event)
		event++;

	if (is_return && isdigit(argv[0][1])) {
	if (isdigit(argv[0][1])) {
		if (!is_return) {
			pr_info("Maxactive is not for kprobe");
			return -EINVAL;
		}
		if (event)
			len = event - &argv[0][1] - 1;
		else
@@ -634,8 +638,8 @@ static int trace_kprobe_create(int argc, const char *argv[])
		memcpy(buf, &argv[0][1], len);
		buf[len] = '\0';
		ret = kstrtouint(buf, 0, &maxactive);
		if (ret) {
			pr_info("Failed to parse maxactive.\n");
		if (ret || !maxactive) {
			pr_info("Invalid maxactive number\n");
			return ret;
		}
		/* kretprobes instances are iterated over via a list. The