Re: [PATCH 0/2] Fix and re-enable vsyscall=emulate

From: Andy Lutomirski
Date: Fri Dec 02 2011 - 17:47:59 EST


On Mon, Nov 7, 2011 at 4:33 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
> The really nice fix (wiring up access_ok failures to be able to raise
> signals) won't be ready on time for 3.2, so let's try the simpler fix
> for now.

I spoke to hpa about this a couple days ago, and he pointed out a
problem with making access_ok send signals. Userspace expects signals
that come with full context information to be restartable, and many
system calls are not restartable. read() and write() are the obvious
examples: once they're processed the beginning of the buffer, unless
they adjust their parameters, they can't safely be restarted. So
without massive changes, I think allowing access_ok to raise a signal
with full context is asking for trouble.

I can still do the patch with two modes: signals without context via
arch_prctl and signals with context via vsyscall emulation, but that's
probably overkill for fixing this bug. I'd say just apply these
patches as is (for 3.3).

--Andy
--
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/