aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorChangbin Du <changbin.du@intel.com>2018-01-16 04:02:30 -0500
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2018-01-23 15:57:28 -0500
commitf4d0706cde27f29ff89e6bf94ded4113f8fe6e80 (patch)
tree5cd8ddafa8948c8f64fb52c88d61f85d2d773cb7 /kernel
parent76638d96502744b0d593f2386b75ae5a017c13bb (diff)
tracing: Make sure the parsed string always terminates with '\0'
Always mark the parsed string with a terminated nul '\0' character. This removes the need for the users to have to append the '\0' before using the parsed string. Link: http://lkml.kernel.org/r/1516093350-12045-4-git-send-email-changbin.du@intel.com Acked-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Changbin Du <changbin.du@intel.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/ftrace.c2
-rw-r--r--kernel/trace/trace.c4
-rw-r--r--kernel/trace/trace_events.c2
3 files changed, 2 insertions, 6 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 554b517c61a0..dabd9d167d42 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -5015,7 +5015,6 @@ int ftrace_regex_release(struct inode *inode, struct file *file)
5015 5015
5016 parser = &iter->parser; 5016 parser = &iter->parser;
5017 if (trace_parser_loaded(parser)) { 5017 if (trace_parser_loaded(parser)) {
5018 parser->buffer[parser->idx] = 0;
5019 ftrace_match_records(iter->hash, parser->buffer, parser->idx); 5018 ftrace_match_records(iter->hash, parser->buffer, parser->idx);
5020 } 5019 }
5021 5020
@@ -5329,7 +5328,6 @@ ftrace_graph_release(struct inode *inode, struct file *file)
5329 parser = &fgd->parser; 5328 parser = &fgd->parser;
5330 5329
5331 if (trace_parser_loaded((parser))) { 5330 if (trace_parser_loaded((parser))) {
5332 parser->buffer[parser->idx] = 0;
5333 ret = ftrace_graph_set_hash(fgd->new_hash, 5331 ret = ftrace_graph_set_hash(fgd->new_hash,
5334 parser->buffer); 5332 parser->buffer);
5335 } 5333 }
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index cb90435e63da..58de825df19c 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -530,8 +530,6 @@ int trace_pid_write(struct trace_pid_list *filtered_pids,
530 ubuf += ret; 530 ubuf += ret;
531 cnt -= ret; 531 cnt -= ret;
532 532
533 parser.buffer[parser.idx] = 0;
534
535 ret = -EINVAL; 533 ret = -EINVAL;
536 if (kstrtoul(parser.buffer, 0, &val)) 534 if (kstrtoul(parser.buffer, 0, &val))
537 break; 535 break;
@@ -1268,6 +1266,8 @@ int trace_get_user(struct trace_parser *parser, const char __user *ubuf,
1268 } else if (parser->idx < parser->size - 1) { 1266 } else if (parser->idx < parser->size - 1) {
1269 parser->cont = true; 1267 parser->cont = true;
1270 parser->buffer[parser->idx++] = ch; 1268 parser->buffer[parser->idx++] = ch;
1269 /* Make sure the parsed string always terminates with '\0'. */
1270 parser->buffer[parser->idx] = 0;
1271 } else { 1271 } else {
1272 ret = -EINVAL; 1272 ret = -EINVAL;
1273 goto out; 1273 goto out;
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 1b87157edbff..05c7172c6667 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -885,8 +885,6 @@ ftrace_event_write(struct file *file, const char __user *ubuf,
885 if (*parser.buffer == '!') 885 if (*parser.buffer == '!')
886 set = 0; 886 set = 0;
887 887
888 parser.buffer[parser.idx] = 0;
889
890 ret = ftrace_set_clr_event(tr, parser.buffer + !set, set); 888 ret = ftrace_set_clr_event(tr, parser.buffer + !set, set);
891 if (ret) 889 if (ret)
892 goto out_put; 890 goto out_put;