git-intr-msg-unwind
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Sat, 2 Oct 2021 12:47:40 +0000 (13:47 +0100)
committerAurelien Jarno <aurel32@debian.org>
Sat, 2 Oct 2021 12:47:40 +0000 (13:47 +0100)
Committed for glibc 2.32

commit 337a7b74faed2c8daf8c91cbb3038dc4984f3207
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Jun 7 17:51:21 2020 +0000

    hurd: Fix unwinding over interruptible RPC

    * sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Set CFA register to
    %ecx while %esp is altered.

Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name git-intr-msg-unwind.diff

sysdeps/mach/hurd/i386/intr-msg.h

index 54420fed01bd2e0773855ba549f850d578a3f197..70e6cc6592d78e20a41adb49bd0858648d1be67f 100644 (file)
        "                               movl %6, %%eax\n"                     \
        "                               jmp _hurd_intr_rpc_msg_sp_restored\n" \
        "_hurd_intr_rpc_msg_do:         movl %%esp, %%ecx\n"                  \
+       "                               .cfi_def_cfa_register %%ecx\n"        \
        "                               leal %4, %%esp\n"                     \
        "_hurd_intr_rpc_msg_cx_sp:      movl $-25, %%eax\n"                   \
        "_hurd_intr_rpc_msg_do_trap:    lcall $7, $0 # status in %0\n"        \
        "_hurd_intr_rpc_msg_in_trap:    movl %%ecx, %%esp\n"                  \
+       "                               .cfi_def_cfa_register %%esp\n"        \
        "_hurd_intr_rpc_msg_sp_restored:"                                     \
        : "=a" (err), "+m" (option), "+m" (timeout), "=m" (*intr_port_p)              \
        : "m" ((&msg)[-1]), "m" (*cancel_p), "i" (EINTR)                              \