You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
788 B
25 lines
788 B
2 years ago
|
commit 3842ba494963b1d76ad5f68b8d1e5c2279160e31
|
||
|
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||
|
Date: Tue Jun 1 09:23:40 2021 +0100
|
||
|
|
||
|
aarch64: align stack in clone [BZ #27939]
|
||
|
|
||
|
The AArch64 PCS requires 16 byte aligned stack. Previously if the
|
||
|
caller passed an unaligned stack to clone then the child crashed.
|
||
|
|
||
|
Fixes bug 27939.
|
||
|
|
||
|
diff --git a/sysdeps/unix/sysv/linux/aarch64/clone.S b/sysdeps/unix/sysv/linux/aarch64/clone.S
|
||
|
index e0653048259dd9a3..4a1a999447ee5cf1 100644
|
||
|
--- a/sysdeps/unix/sysv/linux/aarch64/clone.S
|
||
|
+++ b/sysdeps/unix/sysv/linux/aarch64/clone.S
|
||
|
@@ -48,6 +48,8 @@ ENTRY(__clone)
|
||
|
/* Sanity check args. */
|
||
|
mov x0, #-EINVAL
|
||
|
cbz x10, .Lsyscall_error
|
||
|
+ /* Align sp. */
|
||
|
+ and x1, x1, -16
|
||
|
cbz x1, .Lsyscall_error
|
||
|
|
||
|
/* Do the system call. */
|