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 <srost...@redhat.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 <rost...@goodmis.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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to