On Tue, 2023-03-07 at 15:40 +1000, Nicholas Piggin wrote: > Might need a bit more time and discussion on the API. Interestingly > because the hashchk aspect is architectural, we may not be able to > necessarily sanely enable that, because if it was disabled to start > out with, our callchain up to the prctl call I think would have no > return hashes set so we'd immediately fail on our first return.
I assumed it could eventually be supported in whatever startup wrapper programs are built with, so either as one of the first things before any calls, or the compiler could skip putting hash instructions in the wrapper altogether. The ELF file itself might even be able to request bits be enabled, so the kernel would start the process correctly. As it is inherited, it's also possible for a wrapper program to set a specific DEXCR before a child runs. E.g., fork(); prctl(...NPHIE...); exec(); I hadn't thought of the prctl call itself causing an unbalanced hashchk when it returns, but that should be solvable with an inline syscall.