lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 9 Jul 2012 17:10:39 -0700 From: Anton Vorontsov <anton.vorontsov@...aro.org> To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Kees Cook <keescook@...omium.org>, Colin Cross <ccross@...roid.com>, Tony Luck <tony.luck@...el.com>, Steven Rostedt <rostedt@...dmis.org>, Frederic Weisbecker <fweisbec@...il.com>, Ingo Molnar <mingo@...hat.com> Cc: Arnd Bergmann <arnd@...db.de>, John Stultz <john.stultz@...aro.org>, Shuah Khan <shuahkhan@...il.com>, arve@...roid.com, Rebecca Schultz Zavin <rebecca@...roid.com>, Jesper Juhl <jj@...osbits.net>, Randy Dunlap <rdunlap@...otime.net>, Stephen Boyd <sboyd@...eaurora.org>, Thomas Meyer <thomas@...3r.de>, Andrew Morton <akpm@...ux-foundation.org>, Marco Stornelli <marco.stornelli@...il.com>, WANG Cong <xiyou.wangcong@...il.com>, linux-kernel@...r.kernel.org, devel@...verdev.osuosl.org, linaro-kernel@...ts.linaro.org, patches@...aro.org, kernel-team@...roid.com Subject: [PATCH 1/8] tracing: Fix initialization failure path in tracing_set_tracer() If tracer->init() fails, current code will leave current_tracer pointing to an unusable tracer, which at best makes 'current_tracer' report inaccurate value. Fix the issue by pointing current_tracer to nop tracer, and only update current_tracer with the new one after all the initialization succeeds. Signed-off-by: Anton Vorontsov <anton.vorontsov@...aro.org> Acked-by: Steven Rostedt <rostedt@...dmis.org> --- kernel/trace/trace.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 814ff30..954f7d7 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -3183,10 +3183,10 @@ static int tracing_set_tracer(const char *buf) } destroy_trace_option_files(topts); - current_trace = t; + current_trace = &nop_trace; - topts = create_trace_option_files(current_trace); - if (current_trace->use_max_tr) { + topts = create_trace_option_files(t); + if (t->use_max_tr) { int cpu; /* we need to make per cpu buffer sizes equivalent */ for_each_tracing_cpu(cpu) { @@ -3206,6 +3206,7 @@ static int tracing_set_tracer(const char *buf) goto out; } + current_trace = t; trace_branch_enable(tr); out: mutex_unlock(&trace_types_lock); -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists