DynamoRIO / DynamoRIO/dynamorio
bb fall-through onto unreadable page handling is not 100% transparent
Open
Bug-AppFail
Priority-Low
Transparency
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
A bb that falls through onto a subsequent unreadable page is not handled perfectly.
check_new_page_contig() won't complain, b/c It decodes first and throws away the new instr if it's off onto an incompatible vmarea: so we'll fault before we call it.
We directly generate a fault to the app in our signal handler, which is not transparent if the app were to catch and handle the execution fault: we never executed the intervening instrs in the bb that we successfully decoded.
We don't really want to pay the cost of the setjmp for a try around every decode, so it's not clear the simplest way to solve this.
Contributor guide
Assessment
This issue has not been assessed yet.