Re: Compat 32-bit syscall entry from 64-bit task!?

From: Indan Zupancic
Date: Wed Jan 18 2012 - 20:45:32 EST


On Wed, January 18, 2012 22:26, Linus Torvalds wrote:
> On Wed, Jan 18, 2012 at 1:04 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
>>
>> Fair enough. Sigh. I still think an actual pseudo-register would be
>> better.
>
> .. and that breaks existing binaries too, because the indexing is
> based on offsets into "struct pt_regs", and while we *could* change
> that - leave pt_regs untouched but add a new virtual register - it
> would be problematic.
>
> We could add a whole new ptrace() access command (eg
> PTRACE_GETSYSTEMREGSET), of course. But that's a lot of effort for
> very little gain.
>
> So on the whole, putting it in eflags seemed like the *much* simpler approach.

For security reasons it should be impossible for userspace to set those bits
themselves, otherwise the tracer can be easily fooled on an old kernel. That
seems to be the case for the higher bits of eflags, so eflags would work. And
the current code checks cs, also checking eflags would be very easy to add.

Greetings,

Indan


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/