[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <5e3946e1-f4bb-e3f8-11e9-be26589972b6@gmail.com>
Date: Wed, 6 Apr 2022 21:31:57 +0200
From: Alejandro Colomar <alx.manpages@...il.com>
To: Florian Weimer <fweimer@...hat.com>
Cc: Christian Brauner <brauner@...nel.org>,
Michael Kerrisk <mtk.manpages@...il.com>,
linux-kernel@...r.kernel.org,
Коренберг Марк
<socketpair@...il.com>, Andrei Vagin <avagin@...nvz.org>,
Dmitry Safonov <dima@...sta.com>,
Thomas Gleixner <tglx@...utronix.de>,
Arnd Bergmann <arnd@...db.de>, Serge Hallyn <serge@...lyn.com>,
linux-api@...r.kernel.org, bugzilla-daemon@...nel.org
Subject: Re: [Bug 215813] syscall(SYS_vfork) causes execve() to return 0.
(was: vfork(2) behavior not consistent with fork(2))
Hi Florian,
On 4/6/22 21:26, Florian Weimer wrote:
> It's not clear if this is valid. The syscall function in glibc does not
> protect the on-stack return address against overwriting, so it can't be
> used to call SYS_vfork on x86.
>
> Can you reproduce this with a true inline syscall, or the glibc vfork
> function (which protects the return address)?
If you tell me how I can call a syscall without the libc wrapper or
syscall(2), sure, I can try :)
If syscall(2) can't be used for certain syscalls, maybe we should
document that.
Thanks,
Alex
Powered by blists - more mailing lists