Diff Detail
- Repository
- rL LLVM
Event Timeline
lgtm
lib/msan/msan.h | ||
---|---|---|
46 | Is that for a non-PIE executable? So, the new mapping requires PIE? |
lib/msan/msan.h | ||
---|---|---|
46 | Yes, this is for non-PIE executable. And the new mapping requires PIE executable. |
This LGTM, but you may want to try and fit both PIE and non-PIE in one mapping the way it's done for Linux x86_64.
Should be possible as long as you can narrow one of these down to carve space for shadow/origin region of the non-PIE app mapping space:
- 0xa000000000-0xc000000000: PIE program segments
- 0xe000000000-0xffffffffff: libraries segments.
How about this:
MEM_TO_SHADOW = x ^ 0x800...
SHADOW_TO_ORIGIN = x + 0x200...
and
0x0000000000-0x0200000000: Program own segments
0xa200000000-0xc000000000: PIE program segments
0xe200000000-0xffffffffff: libraries segments.
That's about 2x more address space, and I don't see any overlaps.
Is that for a non-PIE executable? So, the new mapping requires PIE?