Re: [PATCH v9 25/29] x86/umip: Force a page fault when unable to copy emulated result to user

From: Ricardo Neri
Date: Fri Oct 27 2017 - 17:48:15 EST


On Thu, Oct 26, 2017 at 12:59:55AM -0700, Andy Lutomirski wrote:
> On Tue, Oct 3, 2017 at 8:54 PM, Ricardo Neri
> <ricardo.neri-calderon@xxxxxxxxxxxxxxx> wrote:
> > fixup_umip_exception() will be called from do_general_protection(). If the
> > former returns false, the latter will issue a SIGSEGV with SEND_SIG_PRIV.
> > However, when emulation is successful but the emulated result cannot be
> > copied to user space memory, it is more accurate to issue a SIGSEGV with
> > SEGV_MAPERR with the offending address. A new function, inspired in
> > force_sig_info_fault(), is introduced to model the page fault.
>
> This code is slightly buggy (with, for example, PKRU, although the
> chance that anyone ever notices is about nil). For an alternative
> approach, see current->thread.sig_on_uaccess_err, used in
> arch/x86/entry/vsyscall/vsyscall_64.c. But I'm fine with this patch
> as is, too.

Thanks Andy, I will study the alternative you mention. Since you are OK
with this patch, I will submit v10 of this series to allow the review
of the series to continue.

BR,
Ricardo