Messages in this thread | | | From | Andy Lutomirski <> | Date | Fri, 2 Dec 2011 14:47:35 -0800 | Subject | Re: [PATCH 0/2] Fix and re-enable vsyscall=emulate |
| |
On Mon, Nov 7, 2011 at 4:33 PM, Andy Lutomirski <luto@amacapital.net> 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
| |