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

tracing/probe: Check event name length correctly

Ensure given name of event is not too long when parsing it,
and fix to update event name offset correctly when the group
name is given. For example, this makes probe event to check
the "p:foo/" error case correctly.

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



Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 287c038c
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@ int traceprobe_parse_event_name(const char **pevent, const char **pgroup,
				char *buf)
{
	const char *slash, *event = *pevent;
	int len;

	slash = strchr(event, '/');
	if (slash) {
@@ -173,10 +174,15 @@ int traceprobe_parse_event_name(const char **pevent, const char **pgroup,
		strlcpy(buf, event, slash - event + 1);
		*pgroup = buf;
		*pevent = slash + 1;
		event = *pevent;
	}
	if (strlen(event) == 0) {
	len = strlen(event);
	if (len == 0) {
		pr_info("Event name is not specified\n");
		return -EINVAL;
	} else if (len > MAX_EVENT_NAME_LEN) {
		pr_info("Event name is too long\n");
		return -E2BIG;
	}
	return 0;
}