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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Thu, 10 Jan 2013 11:43:49 -0500
From:	Steven Rostedt <rostedt@...dmis.org>
To:	Linus Torvalds <torvalds@...ux-foundation.org>,
	LKML <linux-kernel@...r.kernel.org>
Cc:	Ingo Molnar <mingo@...nel.org>,
	Frederic Weisbecker <fweisbec@...il.com>
Subject: [PATCH][GIT PULL] tracing: Fix regression of trace_options file
 setting


Linus,

I just hit this bug with the lastest kernel. A change that came in this
merge window broke the writing to the trace_options file. It causes
garbage to be read during the compare of option names, and breaks
setting options via the trace_options file, although options can still
be set via the options/<option> files.

Also, I'm not sure where Ingo is, but I have an old pull request with
minor fixes. Feel free to pull that if you want too:

https://lkml.org/lkml/2013/1/7/208

Please pull trace-3.8-rc2-regression-fix:

  git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
trace-3.8-rc2-regression-fix

Head SHA1: f1a67efdbc2c0acb43b2f844053320c38876776f


Steven Rostedt (1):
      tracing: Fix regression of trace_options file setting

----
 kernel/trace/trace.c |    2 ++
 1 file changed, 2 insertions(+)
---------------------------
commit a8dd2176a8e988e3744e863ac39647a6f59fa900
Author: Steven Rostedt <srostedt@...hat.com>
Date:   Wed Jan 9 20:54:17 2013 -0500

    tracing: Fix regression of trace_options file setting
    
    The latest change to allow trace options to be set on the command
    line also broke the trace_options file.
    
    The zeroing of the last byte of the option name that is echoed into
    the trace_option file was removed with the consolidation of some
    of the code. The compare between the option and what was written to
    the trace_options file fails because the string holding the data
    written doesn't terminate with a null character.
    
    A zero needs to be added to the end of the string copied from
    user space.
    
    Signed-off-by: Steven Rostedt <rostedt@...dmis.org>

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index e512567..1bbfa04 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -2899,6 +2899,8 @@ tracing_trace_options_write(struct file *filp, const char __user *ubuf,
 	if (copy_from_user(&buf, ubuf, cnt))
 		return -EFAULT;
 
+	buf[cnt] = 0;
+
 	trace_set_options(buf);
 
 	*ppos += cnt;


--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ