This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFC: stack/heap collision vulnerability and mitigation with GCC
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: Florian Weimer <fweimer at redhat dot com>, Jakub Jelinek <jakub at redhat dot com>, Jeff Law <law at redhat dot com>, Jan Hubicka <jh at suse dot cz>, Eric Botcazou <ebotcazou at adacore dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 20 Jun 2017 14:27:05 +0200
- Subject: Re: RFC: stack/heap collision vulnerability and mitigation with GCC
- Authentication-results: sourceware.org; auth=none
- References: <bef46e40-8004-0f80-4928-ad0795eb76ba@redhat.com> <20170619172932.GV2123@tucnak> <6b026ac5-7b68-f93b-e005-17288163f442@redhat.com> <20170619175149.GY2123@tucnak> <CAFULd4Z98CnqziqTg4GKE8uomepdzkpSeMQ40n1kF=cpA973PA@mail.gmail.com> <CAFiYyc1vAukq31r0CjEpfETAk6MTUVpFuhTapftP6179Q5FL=A@mail.gmail.com> <CAFULd4YPYze+ngEq74JW75=jibk6YVL-JvvKD4z-4aF1TZN_=Q@mail.gmail.com> <09134f33-7f93-752d-c069-f86819191dd4@redhat.com> <CAFULd4YsYwN1saXYySMnNy4r=f6R1wbe0K4pOMmHM75HYJ5dQg@mail.gmail.com> <CAFULd4Y1GBiyv=Cn6R_j3mtinbdqxHen5VbkA1Z1UXQKBRU0gg@mail.gmail.com>
On Tue, Jun 20, 2017 at 2:20 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Tue, Jun 20, 2017 at 2:17 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
>> On Tue, Jun 20, 2017 at 2:13 PM, Florian Weimer <fweimer@redhat.com> wrote:
>>> On 06/20/2017 01:10 PM, Uros Bizjak wrote:
>>>
>>>> 74,99% a.out a.out [.] test_or
>>>> 12,50% a.out a.out [.] test_movb
>>>> 12,50% a.out a.out [.] test_movl
>>>
>>> Could you try notl/notb/negl/negb as well, please?
>>
>> These all have the same (long) runtime as test_or.
>
> Perhaps we can use "testb $0, %0"? It doesn't write to the memory, but
> otherwise has the same runtime as movb/movl.
That sounds good, OTOH it's a matter of putting strain on the
memory fetch or store side... We'll get cacheline allocations in
any case (but the memory will be used eventually). Instead
of test a mere movb into a scratch register (aka, load instead of
store) would work as well apart from the need of a scratch register.
We can also vectorize with scatters ;) (just kidding)
Richard.
> Uros.