diff options
-rw-r--r-- | system/libucontext/0001-Reorder-registers-in-other-assembler-files.patch | 45 | ||||
-rw-r--r-- | system/libucontext/APKBUILD | 11 |
2 files changed, 52 insertions, 4 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 + diff --git a/system/libucontext/APKBUILD b/system/libucontext/APKBUILD index 312e7e83a..425b7ec96 100644 --- a/system/libucontext/APKBUILD +++ b/system/libucontext/APKBUILD @@ -1,14 +1,16 @@ # Maintainer: William Pitcock <nenolod@dereferenced.org> pkgname=libucontext pkgver=0.1.2 -pkgrel=0 +pkgrel=1 pkgdesc="ucontext function implementations" -url="http://github.com/kaniini/libucontext" +url="https://git.dereferenced.org/kaniini/libucontext/" arch="all" license="ISC" depends="" subpackages="$pkgname-dev" -source="https://distfiles.dereferenced.org/libucontext/libucontext-$pkgver.tar.xz" +source="https://distfiles.dereferenced.org/libucontext/libucontext-$pkgver.tar.xz + 0001-Reorder-registers-in-other-assembler-files.patch + " case "$CTARGET_ARCH" in armhf) LIBUCONTEXT_ARCH="arm" ;; @@ -32,4 +34,5 @@ package() { make ARCH="$LIBUCONTEXT_ARCH" DESTDIR="$pkgdir" install } -sha512sums="0c1d74341487d3128667abe9b6594f70c41b4e26bfff656c96eff5de55795f3f4186b3f46281503daf0ee3694a3c10966dd733a6779f49544759a5fe8e6fcdf5 libucontext-0.1.2.tar.xz" +sha512sums="0c1d74341487d3128667abe9b6594f70c41b4e26bfff656c96eff5de55795f3f4186b3f46281503daf0ee3694a3c10966dd733a6779f49544759a5fe8e6fcdf5 libucontext-0.1.2.tar.xz +7f3904e5a10db88cfb3e201b0b370c8c04da5ef33fbf9e177a9bc2da5defbe984057c4be1d1e74672b59a9d4978cf0a7233dc3d661c53aeba355ea91d1ebc24b 0001-Reorder-registers-in-other-assembler-files.patch" |