RFC: Update x86 psABI to support shadow stac

H.J. Lu hjl.tools@gmail.com
Sun Jan 1 00:00:00 GMT 2017


On Thu, Jun 22, 2017 at 6:10 AM, Florian Weimer <fweimer@redhat.com> wrote:
> On 06/22/2017 03:01 PM, H.J. Lu wrote:
>> On Thu, Jun 22, 2017 at 5:51 AM, Florian Weimer <fweimer@redhat.com> wrote:
>>> On 06/21/2017 05:25 PM, H.J. Lu wrote:
>>>> GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on output only if it is set on
>>>> all relocatable inputs, which means that the C library must be compiled
>>>> with SHSTK-enabled compiler.
>>>
>>> I don't think this is sufficiently detailed for an ABI specification.
>>> It needs to say what an SHSTK-enabled compiler does.
>>
>> Compilers just need to make return address popped from shadow
>> stack match return address popped from normal stack.
>
> Nothing else?  Would a writable GOT still be fine?

Writable GOT is OK.

> The responsibilities for compliance are split between caller and callee,
> which can live in different shared objects.  I think it would be prudent
> to formulate the requirement in such a way that compliance can be
> checked by looking at one DSO in isolation.

What do you mean by it?

> Is there a requirement that the return address is popped from the same
> stack location where it was pushed by the call instruction?  Or could
> you return with an elevated stack pointer if you copied the address first?

Stack location isn't checked.  Only the popped return address is checked.
Vedvyas can confirm it.


-- 
H.J.



More information about the Gnu-gabi mailing list