Re: Fixup in unaligned.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 29, 2001 at 02:35:45PM +0100, tommy.christensen@eicon.com wrote:

> It seems we don't always handle bad user-mode pointers correctly.
> If put_user is called with an unmapped AND unaligned address it
> kills the current process instead of returning EFAULT.
> 
> The reason for this is that we do compute_return_epc() in do_ade()
> before the exception table is searched, so we never get a match.

The missplaced branch emulation is a known problem in basically all of our
execption handers that have to emulate branches in software.  It also
effects ptrace; it is possible that a debugger already observes the new epc
after the branch has been executed but the instruction in the delay slow
wasn't due to some problem like a page fault.

> Below is a simple patch to fix it (attached as well).
> The second part is not related, but it makes sense to only consult
> the MF_FIXADE flag on exceptions originating from user-mode, right?

That's actually an evil one from which local DoS attacks can be constructed.

  Ralf

[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux