• P
    linux-user: Fix broken m68k signal handling on 64 bit hosts · 1669add7
    Peter Maydell 提交于
    The m68k signal frame setup code which writes the signal return
    trampoline code to the stack was assuming that a 'long' was 32 bits;
    on 64 bit systems this meant we would end up writing the 32 bit
    (2 insn) trampoline sequence to retaddr+4,retaddr+6 instead of
    the intended retaddr+0,retaddr+2, resulting in a guest crash when
    it tried to execute the invalid zero-bytes at retaddr+0.
    Fix by using uint32_t instead; also use uint16_t rather than short
    for consistency. This fixes bug LP:1404690.
    
    Reported-by: Michel Boaventura
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Signed-off-by: NRiku Voipio <riku.voipio@linaro.org>
    1669add7
signal.c 166.1 KB