* [PATCH] tracing/filters: disallow integer values for string filters and vice versa
@ 2009-03-24 7:14 Tom Zanussi
2009-03-24 7:28 ` [tip:tracing/filters] " Tom Zanussi
2009-03-26 9:18 ` [tip:tracing/filters] tracing: filter fix for TRACE_EVENT_FORMAT events Tom Zanussi
0 siblings, 2 replies; 3+ messages in thread
From: Tom Zanussi @ 2009-03-24 7:14 UTC (permalink / raw)
To: linux-kernel; +Cc: Ingo Molnar, Steven Rostedt, Frédéric Weisbecker
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>
---
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) {
--
1.5.6.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [tip:tracing/filters] tracing/filters: disallow integer values for string filters and vice versa
2009-03-24 7:14 [PATCH] tracing/filters: disallow integer values for string filters and vice versa Tom Zanussi
@ 2009-03-24 7:28 ` Tom Zanussi
2009-03-26 9:18 ` [tip:tracing/filters] tracing: filter fix for TRACE_EVENT_FORMAT events Tom Zanussi
1 sibling, 0 replies; 3+ messages in thread
From: Tom Zanussi @ 2009-03-24 7:28 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, hpa, mingo, fweisbec, tzanussi, rostedt, tglx,
mingo
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) {
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [tip:tracing/filters] tracing: filter fix for TRACE_EVENT_FORMAT events
2009-03-24 7:14 [PATCH] tracing/filters: disallow integer values for string filters and vice versa Tom Zanussi
2009-03-24 7:28 ` [tip:tracing/filters] " Tom Zanussi
@ 2009-03-26 9:18 ` Tom Zanussi
1 sibling, 0 replies; 3+ messages in thread
From: Tom Zanussi @ 2009-03-26 9:18 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, hpa, mingo, fweisbec, tzanussi, rostedt, tglx,
mingo
Commit-ID: 9a8118baaeb0eaa148913bed77bf9c6335f6ca63
Gitweb: http://git.kernel.org/tip/9a8118baaeb0eaa148913bed77bf9c6335f6ca63
Author: Tom Zanussi <tzanussi@gmail.com>
AuthorDate: Thu, 26 Mar 2009 01:24:34 -0500
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Thu, 26 Mar 2009 09:13:14 +0100
tracing: filter fix for TRACE_EVENT_FORMAT events
Impact: fix crash (hang) when using TRACE_EVENT_FORMAT filter files
filters are only hooked up to the tracepoint events defined using
TRACE_EVENT but not the tracers that use TRACE_EVENT_FORMAT, such
as ftrace.
Do not display the filter files at all for TRACE_EVENT_FORMAT events
for the time being.
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.c | 18 +++++-------------
1 files changed, 5 insertions(+), 13 deletions(-)
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index d132997..64ec4d2 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -680,7 +680,6 @@ static struct dentry *
event_subsystem_dir(const char *name, struct dentry *d_events)
{
struct event_subsystem *system;
- struct dentry *entry;
/* First see if we did not already create this dir */
list_for_each_entry(system, &event_subsystems, list) {
@@ -709,12 +708,6 @@ event_subsystem_dir(const char *name, struct dentry *d_events)
system->preds = NULL;
- entry = debugfs_create_file("filter", 0644, system->entry, system,
- &ftrace_subsystem_filter_fops);
- if (!entry)
- pr_warning("Could not create debugfs "
- "'%s/filter' entry\n", name);
-
return system->entry;
}
@@ -770,14 +763,13 @@ event_create_dir(struct ftrace_event_call *call, struct dentry *d_events)
" events/%s\n", call->name);
return ret;
}
+ entry = debugfs_create_file("filter", 0644, call->dir, call,
+ &ftrace_event_filter_fops);
+ if (!entry)
+ pr_warning("Could not create debugfs "
+ "'%s/filter' entry\n", call->name);
}
- entry = debugfs_create_file("filter", 0644, call->dir, call,
- &ftrace_event_filter_fops);
- if (!entry)
- pr_warning("Could not create debugfs "
- "'%s/filter' entry\n", call->name);
-
/* A trace may not want to export its format */
if (!call->show_format)
return 0;
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-03-26 9:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-24 7:14 [PATCH] tracing/filters: disallow integer values for string filters and vice versa Tom Zanussi
2009-03-24 7:28 ` [tip:tracing/filters] " Tom Zanussi
2009-03-26 9:18 ` [tip:tracing/filters] tracing: filter fix for TRACE_EVENT_FORMAT events Tom Zanussi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox