mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
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: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
287c038c0b
commit
dec65d79fd
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user