DynamoRIO / DynamoRIO/dynamorio
32-bit stubs in mixed mode can't fit pointer to linkstub in eax
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on June 25, 2012 13:32:11_
running mixed-mode yang hit assert on creating 32-bit stub:
"link.c:937 emit_sz <= SEPARATE_STUB_ALLOC_SIZE(f->flags)"
emit_sz = 0n20, f->flags = 0x1400000
FRAG_32_BIT is defined as 0x400000
00000000`246c1040 6765a32016abb8 mov dword ptr gs:[B8AB1620h],eax
\ 00000000`246c1047 b0c6 mov al,0C6h
00000000`246c1049 80240000 and byte ptr [rax+rax],0
\ 00000000`246c104d 0000 add byte ptr [rax],al
00000000`246c104f e9ec1efbff jmp 00000000`24672f40
extra 5 bytes: one is bug skipping byte (that's why still 0xab), other 4 are linkstub ptr being 8 bytes.
this affects issue #774 b/c we don't want to rely on stubs being in low 2GB
but, 8-byte ptr won't fit in eax!
well for now could limit to wow64 where we know it's in low 4GB at least
_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=829_
Contributor guide
Assessment
This issue has not been assessed yet.