On Thu, Apr 29, 2021 at 09:17:06AM -0700, Yu, Yu-cheng wrote:
The lock applies to both shadow stack and ibt. So maybe just "locked"?
Sure.
vm_munmap() returns error as the following:
(1) -EINVAL: address/size/alignment is wrong.
For shadow stack, the kernel keeps track of it, this cannot/should not
happen.
You mean nothing might corrupt
cet->shstk_base
cet->shstk_size
?
I can't count the ways I've heard "should not happen" before and then it
happening anyway.
So probably not but we better catch stuff like that instead of leaking.
Should it happen, it is a bug.
Ack.
The kernel can probably do WARN().
Most definitely WARN. You need to catch funsies like that. But WARN_ONCE
should be enough for now.
(2) -ENOMEM: when doing __split_vma()/__vma_adjust(), kmem_cache_alloc()
fails.
Not much we can do. Perhaps WARN()?
You got it.
Bottom line is: if you can check for this and it is cheap, then
definitely. Code changes, gets rewritten, reorganized, the old
assertions change significance, and so on...
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette