Re: personality(ADDR_LIMIT_3GB) results in EFAULT

Andi Kleen
2010-05-27T18:38:22Z

Michael Tokarev <mjt@tls.msk.ru> writes:

> I noticed an.. interesting issue here.
>
> Running a 32bit executable on a 64bit kernel,
> and doing
>
> personality(ADDR_LIMIT_3GB);
>
> That call succedes, but any further execve()
> and friends results in EFAULT, unless whole
> argv[] and envp[] are copied to a malloc'ed
> space. alloca sometimes helps and sometimes
> not.

It worked when I wrote it originally.

Sounds like a regression, perhaps related to
b6a2fea39318e43fee84fa7b0b90d68bed92d2ba

-Andi
--
ak@linux.intel.com -- Speaking for myself only.