Commit 57faaa04 authored by Masami Hiramatsu (Google)'s avatar Masami Hiramatsu (Google)
Browse files

tracing: probe-events: Log error for exceeding the number of arguments

parent 38fec10e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -913,6 +913,8 @@ static int __trace_eprobe_create(int argc, const char *argv[])
	}

	if (argc - 2 > MAX_TRACE_ARGS) {
		trace_probe_log_set_index(2);
		trace_probe_log_err(0, TOO_MANY_ARGS);
		ret = -E2BIG;
		goto error;
	}
+4 −1
Original line number Diff line number Diff line
@@ -1199,8 +1199,11 @@ static int trace_fprobe_create_internal(int argc, const char *argv[],
		argc = new_argc;
		argv = new_argv;
	}
	if (argc > MAX_TRACE_ARGS)
	if (argc > MAX_TRACE_ARGS) {
		trace_probe_log_set_index(2);
		trace_probe_log_err(0, TOO_MANY_ARGS);
		return -E2BIG;
	}

	ret = traceprobe_expand_dentry_args(argc, argv, &dbuf);
	if (ret)
+4 −1
Original line number Diff line number Diff line
@@ -1007,8 +1007,11 @@ static int trace_kprobe_create_internal(int argc, const char *argv[],
		argc = new_argc;
		argv = new_argv;
	}
	if (argc > MAX_TRACE_ARGS)
	if (argc > MAX_TRACE_ARGS) {
		trace_probe_log_set_index(2);
		trace_probe_log_err(0, TOO_MANY_ARGS);
		return -E2BIG;
	}

	ret = traceprobe_expand_dentry_args(argc, argv, &dbuf);
	if (ret)
+1 −0
Original line number Diff line number Diff line
@@ -545,6 +545,7 @@ extern int traceprobe_define_arg_fields(struct trace_event_call *event_call,
	C(BAD_BTF_TID,		"Failed to get BTF type info."),\
	C(BAD_TYPE4STR,		"This type does not fit for string."),\
	C(NEED_STRING_TYPE,	"$comm and immediate-string only accepts string type"),\
	C(TOO_MANY_ARGS,	"Too many arguments are specified"),	\
	C(TOO_MANY_EARGS,	"Too many entry arguments specified"),

#undef C
+7 −2
Original line number Diff line number Diff line
@@ -562,8 +562,14 @@ static int __trace_uprobe_create(int argc, const char **argv)

	if (argc < 2)
		return -ECANCELED;
	if (argc - 2 > MAX_TRACE_ARGS)

	trace_probe_log_init("trace_uprobe", argc, argv);

	if (argc - 2 > MAX_TRACE_ARGS) {
		trace_probe_log_set_index(2);
		trace_probe_log_err(0, TOO_MANY_ARGS);
		return -E2BIG;
	}

	if (argv[0][1] == ':')
		event = &argv[0][2];
@@ -582,7 +588,6 @@ static int __trace_uprobe_create(int argc, const char **argv)
		return -ECANCELED;
	}

	trace_probe_log_init("trace_uprobe", argc, argv);
	trace_probe_log_set_index(1);	/* filename is the 2nd argument */

	*arg++ = '\0';