<CAGjk+z8eGD6kVOsunVj8HT-Vzpw10fyA_g+Fv6jK8UCz=coPUw@mail.gmail.com>
Hi, I'm a bit unsure about the current meaning of map_flags::X. Code in init::phdr_load [1] and aarch64's objects::arch_flags [2] seem to imply that when this flag is set, execution should _not_ be permitted. However, both some commented out code in x86_64's objects::arch_flags [3] and common *nix convention would point at "X" meaning execution should be permitted. Could anyone clarify the intention? Thanks, Gilles [1]: https://git.sr.ht/~sircmpwn/helios/tree/b42edc26a6da70ef93f46b0a0461d51f2b3b1a3a/item/init/load.ha#L66-68 [2]: https://git.sr.ht/~sircmpwn/helios/tree/b42edc26a6da70ef93f46b0a0461d51f2b3b1a3a/item/objects/+aarch64/arch_vspace.ha#L153-156 [3]: https://git.sr.ht/~sircmpwn/helios/tree/b42edc26a6da70ef93f46b0a0461d51f2b3b1a3a/item/objects/+x86_64/arch_vspace.ha#L185-187
<CXM6XUYOGM3I.372ERNYLUF57C@taiga>
<CAGjk+z8eGD6kVOsunVj8HT-Vzpw10fyA_g+Fv6jK8UCz=coPUw@mail.gmail.com>
(view parent)
map_flags::X should imply that code execution is allowed. If the bit is flipped on the target arch, it's flipped before being applied. map_flags is not a 1:1 representation of the target's page table entries.
<CAGjk+z-kkZ50XvFw9xmod80e0dwAsnK-qhFVQn_c0Gq34jc9KA@mail.gmail.com>
<CXM6XUYOGM3I.372ERNYLUF57C@taiga>
(view parent)
OK, thanks. I have sent a patch to do that. Gilles