Messages in this thread Patch in this message | | | Date | Tue, 24 Mar 2009 07:28:04 GMT | From | Tom Zanussi <> | Subject | [tip:tracing/filters] tracing/filters: disallow integer values for string filters and vice versa |
| |
Commit-ID: 9f58a159d022c8f2533a27708aa267adf4f0e3ce Gitweb: http://git.kernel.org/tip/9f58a159d022c8f2533a27708aa267adf4f0e3ce Author: Tom Zanussi <tzanussi@gmail.com> AuthorDate: Tue, 24 Mar 2009 02:14:42 -0500 Committer: Ingo Molnar <mingo@elte.hu> CommitDate: Tue, 24 Mar 2009 08:26:52 +0100
tracing/filters: disallow integer values for string filters and vice versa
Impact: fix filter use boundary condition / crash
Make sure filters for string fields don't use integer values and vice versa. Getting it wrong can crash the system or produce bogus results.
Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: =?ISO-8859-1?Q?Fr=E9d=E9ric?= Weisbecker <fweisbec@gmail.com> LKML-Reference: <1237878882.8339.61.camel@charm-linux> Signed-off-by: Ingo Molnar <mingo@elte.hu>
--- kernel/trace/trace_events_filter.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c index 9fca8bb..026be41 100644 --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c @@ -237,9 +237,14 @@ int filter_add_pred(struct ftrace_event_call *call, struct filter_pred *pred) pred->offset = field->offset; if (is_string_field(field->type)) { + if (!pred->str_val) + return -EINVAL; pred->fn = filter_pred_string; pred->str_len = field->size; return __filter_add_pred(call, pred); + } else { + if (pred->str_val) + return -EINVAL; } switch (field->size) {
| |