Index: src/trusted/validator_ragel/unreviewed/validator_internal.h |
=================================================================== |
--- src/trusted/validator_ragel/unreviewed/validator_internal.h (revision 9570) |
+++ src/trusted/validator_ragel/unreviewed/validator_internal.h (working copy) |
@@ -370,9 +370,10 @@ |
int8_t offset = (uint8_t) (rip[-1]); |
size_t jump_dest = offset + (rip - codeblock_start); |
- if (!MarkJumpTarget(jump_dest, jump_dests, jumpdests_size)) { |
- *instruction_info_collected |= DIRECT_JUMP_OUT_OF_RANGE; |
- } |
+ if (!MarkJumpTarget(jump_dest, jump_dests, jumpdests_size)) |
+ *instruction_info_collected |= RELATIVE_8BIT | DIRECT_JUMP_OUT_OF_RANGE; |
+ else |
+ *instruction_info_collected |= RELATIVE_8BIT; |
} |
/* |
@@ -389,9 +390,10 @@ |
rip[-2] + 256U * ((uint32_t) rip[-1])))); |
size_t jump_dest = offset + (rip - codeblock_start); |
- if (!MarkJumpTarget(jump_dest, jump_dests, jumpdests_size)) { |
- *instruction_info_collected |= DIRECT_JUMP_OUT_OF_RANGE; |
- } |
+ if (!MarkJumpTarget(jump_dest, jump_dests, jumpdests_size)) |
+ *instruction_info_collected |= RELATIVE_32BIT | DIRECT_JUMP_OUT_OF_RANGE; |
+ else |
+ *instruction_info_collected |= RELATIVE_32BIT; |
} |
static INLINE void check_access(ptrdiff_t instruction_start, |