summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2017-02-22 22:18:51 +0000
committerpatrick <patrick@openbsd.org>2017-02-22 22:18:51 +0000
commitfc53081f2fd93c822275cae847d9aaefbe874af3 (patch)
treeb495445efd79354c3b13ee0981adc74d5ce1fa4b
parentfix timeout loop (diff)
downloadwireguard-openbsd-fc53081f2fd93c822275cae847d9aaefbe874af3.tar.xz
wireguard-openbsd-fc53081f2fd93c822275cae847d9aaefbe874af3.zip
The assembly for sigprocmask(2) had a tiny typo which made it jump to
the wrong location, thus not making it set SIG_BLOCK with a zero mask when attempting to read the signal mask (if set ptr is NULL). Instead an attempt to read the mask actually told the syscall to set the mask to zero.
-rw-r--r--lib/libc/arch/aarch64/sys/sigprocmask.S8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/libc/arch/aarch64/sys/sigprocmask.S b/lib/libc/arch/aarch64/sys/sigprocmask.S
index 6de70f6a1f5..7a9ea688f14 100644
--- a/lib/libc/arch/aarch64/sys/sigprocmask.S
+++ b/lib/libc/arch/aarch64/sys/sigprocmask.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: sigprocmask.S,v 1.1 2017/01/11 18:09:24 patrick Exp $ */
+/* $OpenBSD: sigprocmask.S,v 1.2 2017/02/22 22:18:51 patrick Exp $ */
/* $NetBSD: sigprocmask.S,v 1.5 2003/08/07 16:42:05 agc Exp $ */
/*-
@@ -35,12 +35,12 @@
#include "SYS.h"
SYSENTRY_HIDDEN(sigprocmask)
- cbz x1, 2f
+ cbz x1, 1f
ldr w1, [x1]
- b 2f
+ b 2f
1:
mov w0, #0x00000001
- mov x1, #0x00000000
+ mov w1, #0x00000000
2:
SYSTRAP(sigprocmask)