On Mon, Jun 20, 2016 at 9:14 AM, Oleg Nesterov <o...@redhat.com> wrote: > On 06/20, Andy Lutomirski wrote: >> >> On Mon, Jun 20, 2016 at 8:24 AM, Oleg Nesterov <o...@redhat.com> wrote: >> > >> > How about the simple change below for now? IIRC 32-bit task can't use >> > "syscall" so if syscall_get_nr() >= 0 then even the wrong TS_COMPAT is >> > not that bad, even if it "leaks" to user-mode. >> >> Hmm. That should fix the minor security issue, but it will even >> further break cross-arch tracing: now a 32-bit tracer tracing a 64-bit >> task that does int $0x80 will malfunction even more than it would >> have. > > This is broken in any case. I mean, a 32-bit debugger can't really > debug a 64-bit task. > > I don't think this change makes the things really worse. > >> Also, it relies on bizarre arch details IMO. > > Heh, it looks as if your patch do not ;) > >> I think I prefer my version, coming momentarily. > > I disagree... I don't really understand why do we need the additional > complications for the minimal fix which doesn't look very nice anyway. > > But I won't argue, and your patch looks correct to me.
Part of the reason is that I actually want to fix this in two parts. After my TS_REGS_POKED_I386 patch, I have a follow-up patch that I want to polish and test a bit more that's intended to get the 64-bit-tracer/32-bit-tracee case right, but it probably needs extra testing, is less likely to make 4.8, and is definitely not for 4.7/stab.e. That patch deletes TS_REGS_POKED_I386 again. So by having the minimal fix be more mindless, I'm more comfortable with the backport. I'll send out the second patch soon. --Andy -- Andy Lutomirski AMA Capital Management, LLC