[lkml]   [2003]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: crashme on ARM - unkillable processes

    On Sun, 9 Nov 2003, Russell King wrote:
    > The code which crashme generated corrupted the user stack pointer. We
    > then tried to deliver a signal, found the user stack pointer invalid,
    > and tried to deliver a SEGV to the process via force_sig(). Unfortunately,
    > this signal never made it through for the reasons described previously.
    > (We dequeued the ILL, found we couldn't setup the stack frame, force_sig,
    > returned to userspace, generated another undefined instruction exception
    > on the same instruction, etc.)

    Ahh. I think I found why ARM has this problem, and others don't.

    Your SA_NODEFER handling is broken.

    The thing is, you only block a signal if its stack frame was successfully
    done _and_ SA_NODEFER is not set.

    It should be the other way around. You should block a signal if it's stack
    frame was unsuccessful _or_ SA_NODEFER was not set.

    (x86 gets this wrong too, in the sense that we don't even check to see if
    the stack frame was successful - but since nobody sets SA_NODEFER anyway,
    we don't really much care).


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2009-11-18 23:46    [W:0.018 / U:18.468 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site