mips: align stack in clone [BZ #28223]
Checks
Commit Message
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.
---
sysdeps/unix/sysv/linux/mips/clone.S | 7 +++++++
1 file changed, 7 insertions(+)
Comments
On Fri, 13 Aug 2021, Xi Ruoyao via Libc-alpha wrote:
> 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 patch is OK.
On Thu, 2021-08-12 at 17:20 +0000, Joseph Myers wrote:
> On Fri, 13 Aug 2021, Xi Ruoyao via Libc-alpha wrote:
>
> > 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 patch is OK.
>
I don't have git write access, waiting for a maintainer to push it.
On Fri, 13 Aug 2021, Xi Ruoyao via Libc-alpha wrote:
> On Thu, 2021-08-12 at 17:20 +0000, Joseph Myers wrote:
> > On Fri, 13 Aug 2021, Xi Ruoyao via Libc-alpha wrote:
> >
> > > 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 patch is OK.
>
> I don't have git write access, waiting for a maintainer to push it.
Now pushed.
@@ -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