From 2b6c101486c31cd9996278c98d0406e71f9210df Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Mon, 10 Aug 2009 16:38:36 +0200 Subject: [PATCH] --- yaml --- r: 156640 b: refs/heads/master c: 1853db0e02ae4088f102b0d8e59e83dc98f93f03 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/trace/ftrace.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index d08e750312a1..f1410749d275 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 304703aba31a87903b8c0db8f5e6890cac2d596d +refs/heads/master: 1853db0e02ae4088f102b0d8e59e83dc98f93f03 diff --git a/trunk/include/trace/ftrace.h b/trunk/include/trace/ftrace.h index a05524fa245d..f64fbaae781a 100644 --- a/trunk/include/trace/ftrace.h +++ b/trunk/include/trace/ftrace.h @@ -648,6 +648,9 @@ __attribute__((section("_ftrace_events"))) event_##call = { \ * char raw_data[__entry_size]; <- allocate our sample in the stack * struct trace_entry *ent; * + * zero dead bytes from alignment to avoid stack leak to userspace: + * + * *(u64 *)(&raw_data[__entry_size - sizeof(u64)]) = 0ULL; * entry = (struct ftrace_raw_ *)raw_data; * ent = &entry->ent; * tracing_generic_entry_update(ent, irq_flags, pc); @@ -698,6 +701,7 @@ static void ftrace_profile_##call(proto) \ char raw_data[__entry_size]; \ struct trace_entry *ent; \ \ + *(u64 *)(&raw_data[__entry_size - sizeof(u64)]) = 0ULL; \ entry = (struct ftrace_raw_##call *)raw_data; \ ent = &entry->ent; \ tracing_generic_entry_update(ent, irq_flags, pc); \