Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-10-03 Thread Yury Khrustalev
On Tue, Oct 01, 2024 at 05:12:38PM +0200, Christian Brauner wrote: > > Thanks for the info! > > > > > > > > My preference is to keep the api consistent and require a stack_size for > > > shadow stacks as well. > > > > Did you catch that a token can be at a different offsets location on the > >

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-10-02 Thread Edgecombe, Rick P
On Wed, 2024-10-02 at 22:01 +0100, Mark Brown wrote: > BTW it's probably also worth noting that at least on arm64 (perhaps x86 > is different here?) the shadow stack of a thread that exited won't have > a token placed on it so it won't be possible to use it with clone3() at > all unless another tok

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-10-02 Thread Mark Brown
On Wed, Oct 02, 2024 at 02:42:58PM +0100, Mark Brown wrote: > On Tue, Oct 01, 2024 at 11:03:10PM +, Edgecombe, Rick P wrote: > > I'm not so sure. The thing is a regular stack can be re-used in full - just > > set > > the RSP to the end and take advantage of the whole stack. A shadow stack can

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-10-02 Thread Mark Brown
On Tue, Oct 01, 2024 at 11:03:10PM +, Edgecombe, Rick P wrote: > On Tue, 2024-10-01 at 18:33 +0100, Mark Brown wrote: > > My suspicion would be that if we're doing the pivot to a previously used > > shadow stack we'd also be pivoting the regular stack along with it which > > would face similar

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-10-01 Thread Edgecombe, Rick P
On Tue, 2024-10-01 at 18:33 +0100, Mark Brown wrote: > > > A shadow stack size is more symmetric on the surface, but I'm not sure it > > > will > > > be easier for userspace to handle. So I think we should just have a > > > pointer to > > > the token. But it will be a usable implementation either w

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-10-01 Thread Mark Brown
On Tue, Oct 01, 2024 at 05:12:38PM +0200, Christian Brauner wrote: > On Fri, Sep 27, 2024 at 03:21:59PM GMT, Edgecombe, Rick P wrote: > > Did you catch that a token can be at a different offsets location on the > > stack > > depending on args passed to map_shadow_stack? So userspace will need >

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-10-01 Thread Christian Brauner
On Fri, Sep 27, 2024 at 03:21:59PM GMT, Edgecombe, Rick P wrote: > On Fri, 2024-09-27 at 10:50 +0200, Christian Brauner wrote: > > The legacy clone system call had required userspace to know in which > > direction the stack was growing and then pass down the stack pointer > > appropriately (e.g., p

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-09-27 Thread Edgecombe, Rick P
On Fri, 2024-09-27 at 10:50 +0200, Christian Brauner wrote: > The legacy clone system call had required userspace to know in which > direction the stack was growing and then pass down the stack pointer > appropriately (e.g., parisc grows upwards). > > And in fact, the old clone() system call did t

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-09-27 Thread Christian Brauner
On Wed, Aug 21, 2024 at 06:23:18PM GMT, Mark Brown wrote: > On Wed, Aug 21, 2024 at 03:54:49PM +, Edgecombe, Rick P wrote: > > On Wed, 2024-08-21 at 13:45 +0100, Mark Brown wrote: > > > > It's entirely possible it just leaked.  My own attempts to dig through > > > the archives haven't turned u