[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Differing PAC behavior between Qemu and Arm FVP
From: |
Richard Henderson |
Subject: |
Re: Differing PAC behavior between Qemu and Arm FVP |
Date: |
Tue, 28 Jul 2020 08:50:10 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
> The scenario: Application signs pointer 0xdeadbeef using the pacda
> instruction to obtain a new pointer 0xXYdeadbeef. Later, the application
> wants to generate a new PAC signature for 0xdeadbeef, but uses 0xXYdeadbeef
> as the address for the pacda instruction to generate pointer 0xABdeadbeef.
> Finally, the application wants to authenticate using the autda instruction
> using 0xABdeadbeef and the modifier used to generate that pointer.>
> Qemu behavior: The autda instruction succeeds and 0xdeadbeef is returned.
>
> FVP behavior: The autda instruction fails, and an invalid pointer is
> returned. In order for the autda instruction to succeed, the pointer
> provided to the pacda instruction must have the upper bits set to zero.
>
> Is this a bug, or are we not very concerned about corner cases like these?
Well, actually, if you haven't already gotten an invalid pointer out of step
two (the second pacda) then *that* is a bug. And an invalid pointer should not
succeed the autda.
So, yes, this does sound like a bug.
I will see if I can create a test case for this, but if you already have one,
that would also be helpful.
r~
- Re: Differing PAC behavior between Qemu and Arm FVP,
Richard Henderson <=