[PATCH] tracing/syscalls: ignore numbers outside NR_syscalls' range
From: rostedt@goodmis.org (Steven Rostedt)
Date: 2014-10-30 11:52:28
Also in:
lkml
On Thu, 30 Oct 2014 07:10:39 -0400 Steven Rostedt [off-list ref] wrote:
On Thu, 30 Oct 2014 10:18:08 +0000 Russell King - ARM Linux [off-list ref] wrote:quoted
On Thu, Oct 30, 2014 at 01:26:06AM -0700, Christoph Hellwig wrote:quoted
On Wed, Oct 29, 2014 at 11:06:58PM +0100, Rabin Vincent wrote:quoted
ARM has some private syscalls (for example, set_tls(2)) which lie outside the range of NR_syscalls. If any of these are called while syscall tracing is being performed, out-of-bounds array access will occur in the ftrace and perf sys_{enter,exit} handlers.While this patch looks like good caution, having syscalls outside of NR_syscalls seems like a receipe for a disaster. Can you try to fix that issue as ell, please?No. We've had them since the inception of Linux on ARM. They predate this tracing crap by more than a decade. We're not changing them because that would be a massive user API breakage.Since syscall tracing is only broken on ARM, then the fix needs to be ARM specific, and not remove the check for all other architectures that have a sane NR_syscalls variable.
Bah, I misread the patch. I shouldn't read patches before having my morning coffee :-/ I read it backwards. I thought it was removing the checks for NR_syscalls, and not adding them. I'm fine with the patch as is, and will take it. But I agree that the syscall tracing code needs a rewrite to handle these types of issues. It has problems with compat calls as well, which we simply ignore. Sorry for the confusion. -- Steve