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, 12 Aug 2013 11:34:05 +0200 From: Jiri Olsa <jolsa@...hat.com> To: linux-kernel@...r.kernel.org Cc: Steven Rostedt <rostedt@...dmis.org>, Frederic Weisbecker <fweisbec@...il.com>, Ingo Molnar <mingo@...hat.com> Subject: [PATCH] ftrace: Add initialization check in trace_printk for *puts paths Adding initialization check in trace_printk for *puts paths, plus unifying the check for all related cases. Cc: Steven Rostedt <rostedt@...dmis.org> Cc: Frederic Weisbecker <fweisbec@...il.com> Cc: Ingo Molnar <mingo@...hat.com> --- kernel/trace/trace.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 882ec1d..cb7cf96 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -126,6 +126,9 @@ static char *default_bootup_tracer; static bool allocate_snapshot; +#define TRACE_PRINTK_DENIED \ + unlikely(tracing_selftest_running || tracing_disabled) + static int __init set_cmdline_ftrace(char *str) { strlcpy(bootup_tracer_buf, str, MAX_TRACER_SIZE); @@ -430,6 +433,9 @@ int __trace_puts(unsigned long ip, const char *str, int size) unsigned long irq_flags; int alloc; + if (TRACE_PRINTK_DENIED) + return 0; + alloc = sizeof(*entry) + size + 2; /* possible \n added */ local_save_flags(irq_flags); @@ -470,6 +476,9 @@ int __trace_bputs(unsigned long ip, const char *str) unsigned long irq_flags; int size = sizeof(struct bputs_entry); + if (TRACE_PRINTK_DENIED) + return 0; + local_save_flags(irq_flags); buffer = global_trace.trace_buffer.buffer; event = trace_buffer_lock_reserve(buffer, TRACE_BPUTS, size, @@ -1757,7 +1766,7 @@ void trace_dump_stack(int skip) { unsigned long flags; - if (tracing_disabled || tracing_selftest_running) + if (TRACE_PRINTK_DENIED) return; local_save_flags(flags); @@ -1976,7 +1985,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) char *tbuffer; int len = 0, size, pc; - if (unlikely(tracing_selftest_running || tracing_disabled)) + if (TRACE_PRINTK_DENIED) return 0; /* Don't pollute graph traces with trace_vprintk internals */ @@ -2032,7 +2041,7 @@ __trace_array_vprintk(struct ring_buffer *buffer, unsigned long flags; char *tbuffer; - if (tracing_disabled || tracing_selftest_running) + if (TRACE_PRINTK_DENIED) return 0; /* Don't pollute graph traces with trace_vprintk internals */ -- 1.7.11.7 -- 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