diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2018-07-19 17:27:33 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2018-07-19 17:27:33 -0500 |
commit | 12842f346c51b56c54b193c0b03f4bcf5b96f26b (patch) | |
tree | e85f31a59e024c102af581e86eaf32bc212bf1dc /system/libucontext/0001-Reorder-registers-in-other-assembler-files.patch | |
parent | b493aa58d0b77f342199d3b410e0b57f91d03940 (diff) | |
download | packages-12842f346c51b56c54b193c0b03f4bcf5b96f26b.tar.gz packages-12842f346c51b56c54b193c0b03f4bcf5b96f26b.tar.bz2 packages-12842f346c51b56c54b193c0b03f4bcf5b96f26b.tar.xz packages-12842f346c51b56c54b193c0b03f4bcf5b96f26b.zip |
system/libucontext: update URL, fix x86_64 crash
Diffstat (limited to 'system/libucontext/0001-Reorder-registers-in-other-assembler-files.patch')
-rw-r--r-- | system/libucontext/0001-Reorder-registers-in-other-assembler-files.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/system/libucontext/0001-Reorder-registers-in-other-assembler-files.patch b/system/libucontext/0001-Reorder-registers-in-other-assembler-files.patch new file mode 100644 index 000000000..b6fe600c9 --- /dev/null +++ b/system/libucontext/0001-Reorder-registers-in-other-assembler-files.patch @@ -0,0 +1,45 @@ +From 42c84cbe58c3c9089cc2a46a425210f20b47bcc9 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Thu, 19 Jul 2018 17:17:26 -0500 +Subject: [PATCH] Reorder registers in other assembler files + +This fixes the previous commit which changed the register order in +swapcontext only, which caused setcontext to subtly corrupt the stack. +--- + arch/x86_64/getcontext.S | 4 ++-- + arch/x86_64/setcontext.S | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/arch/x86_64/getcontext.S b/arch/x86_64/getcontext.S +index 7e56a1a..24cc1d3 100644 +--- a/arch/x86_64/getcontext.S ++++ b/arch/x86_64/getcontext.S +@@ -22,8 +22,8 @@ __getcontext: + movq %r14, 88(%rdi) + movq %r15, 96(%rdi) + movq %rdi, 104(%rdi) +- movq %rbp, 112(%rdi) +- movq %rsi, 120(%rdi) ++ movq %rsi, 112(%rdi) ++ movq %rbp, 120(%rdi) + movq %rbx, 128(%rdi) + movq %rdx, 136(%rdi) + movq $1, 144(%rdi) /* $1 is %rax */ +diff --git a/arch/x86_64/setcontext.S b/arch/x86_64/setcontext.S +index 607d40c..aba3775 100644 +--- a/arch/x86_64/setcontext.S ++++ b/arch/x86_64/setcontext.S +@@ -21,8 +21,8 @@ __setcontext: + movq 80(%rdi), %r13 + movq 88(%rdi), %r14 + movq 96(%rdi), %r15 +- movq 112(%rdi), %rbp +- movq 120(%rdi), %rsi ++ movq 112(%rdi), %rsi ++ movq 120(%rdi), %rbp + movq 128(%rdi), %rbx + movq 136(%rdi), %rdx + movq 144(%rdi), %rax +-- +2.15.0 + |