Skip to content

Commit

Permalink
fix djump check
Browse files Browse the repository at this point in the history
  • Loading branch information
qiweiii committed Feb 7, 2025
1 parent d9313fc commit a92a5a6
Showing 1 changed file with 3 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,13 @@ extension Instructions {
let entrySize = Int(context.state.program.jumpTableEntrySize)
let start = ((Int(target) / context.config.pvmDynamicAddressAlignmentFactor) - 1) * entrySize
let end = start + entrySize
let jumpTable = context.state.program.jumpTable

guard (context.state.program.jumpTable.startIndex ... context.state.program.jumpTable.endIndex).contains(start ..< end) else {
guard jumpTable.count >= (end - start), jumpTable.startIndex + end <= jumpTable.endIndex else {
return .exit(.panic(.invalidDynamicJump))
}

var targetAlignedData = context.state.program.jumpTable[relative: start ..< end]
var targetAlignedData = jumpTable[relative: start ..< end]
guard let targetAligned = targetAlignedData.decode() else {
return .exit(.panic(.trap))
}
Expand Down

0 comments on commit a92a5a6

Please sign in to comment.