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: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
Masami Hiramatsu 2019-03-14 13:30:09 +09:00 коммит произвёл Steven Rostedt (VMware)
Родитель 31b265b3ba
Коммит 287c038c0b
1 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -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