mips: align stack in clone [BZ #28223]

The MIPS O32 ABI requires 4 byte aligned stack, and the MIPS N64 and N32
ABI require 8 byte aligned stack.  Previously if the caller passed an
unaligned stack to clone the the child misbehaved.

Fixes bug 28223.
This commit is contained in:
Xi Ruoyao 2021-08-12 20:31:59 +00:00 committed by Joseph Myers
parent 4cc79c2177
commit 1f51cd9a86
1 changed files with 7 additions and 0 deletions

View File

@ -55,6 +55,13 @@ NESTED(__clone,4*SZREG,sp)
.set at
#endif
/* Align stack to 4/8 bytes per the ABI. */
#if _MIPS_SIM == _ABIO32
li t0,-4
#else
li t0,-8
#endif
and a1,a1,t0
/* Sanity check arguments. */
li v0,EINVAL