• Linus Torvalds's avatar
    Merge tag 'trace-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · fcbc1777
    Linus Torvalds authored
    Pull tracing fixes from Steven Rostedt:
     "This isn't my 4.2 pull request (yet).  I found a few more bugs that I
      would have sent to fix 4.1, but since 4.1 is already out, I'm sending
      this before sending my 4.2 request (which is ready to go).
    
      After fixing the previous filter issue reported by Vince Weaver, I
      could not come up with a situation where the operand counter (cnt)
      could go below zero, so I added a WARN_ON_ONCE(cnt < 0).  Vince was
      able to trigger that warn on with his fuzzer test, but didn't have a
      filter input that caused it.
    
      Later, Sasha Levin was able to trigger that same warning, and was able
      to give me the filter string that triggered it.  It was simply a
      single operation ">".
    
      I wrapped the filtering code in a userspace program such that I could
      single step through the logic.  With a single operator the operand
      counter can legitimately go below zero, and should be reported to the
      user as an error, but should not produce a kernel warning.  The
      WARN_ON_ONCE(cnt < 0) should be just a "if (cnt < 0) break;" and the
      code following it will produce the error message for the user.
    
      While debugging this, I found that there was another bug that let the
      pointer to the filter string go beyond the filter string.  This too
      was fixed.
    
      Finally, there was a typo in a stub function that only gets compiled
      if trace events is disabled but tracing is enabled (I'm not even sure
      that's possible)"
    
    * tag 'trace-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
      tracing: Fix typo from "static inlin" to "static inline"
      tracing/filter: Do not allow infix to exceed end of string
      tracing/filter: Do not WARN on operand count going below zero
    fcbc1777
trace_events_filter.c 53.8 KB