Skip to content

Commit 3b279fe

Browse files
author
axiongsupra
committed
Fixes index ouf bound error
1 parent 9b1ac05 commit 3b279fe

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

third_party/move/move-bytecode-verifier/src/call_edge_detection.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ impl<'a> CallEdgeDetector<'a> {
6464
let called_function_name = module.identifier_at(called_function_handle.name);
6565
let module_id = module.self_id();
6666
let source_module = module_id.address();
67-
let target_module = module.address_identifiers()[called_function_handle.module.0 as usize];
67+
let self_address = module.self_id().address().clone();
68+
let target_module = module.address_identifiers().get(called_function_handle.module.0 as usize)
69+
.unwrap_or_else(|| &self_address);
6870
println!(
6971
" Calls: {} from module: {:x} to module: {:x}",
7072
called_function_name, source_module, target_module
@@ -76,7 +78,9 @@ impl<'a> CallEdgeDetector<'a> {
7678
let called_function_name = module.identifier_at(called_function_handle.name);
7779
let module_id = module.self_id();
7880
let source_module = module_id.address();
79-
let target_module = module.address_identifiers()[called_function_handle.module.0 as usize];
81+
let self_address = module.self_id().address().clone();
82+
let target_module = module.address_identifiers().get(called_function_handle.module.0 as usize)
83+
.unwrap_or_else(|| &self_address);
8084
println!(
8185
" Calls: {} from module: {:x} to module: {:x}",
8286
called_function_name, source_module, target_module
@@ -96,7 +100,6 @@ impl<'a> CallEdgeDetector<'a> {
96100
}
97101
}
98102
}
99-
//TODO return edge, where is the after the function call finish
100103
//TODO how to add gas metering for distinguishing cross container and in container function call?
101104
//TODO how the gas should be calculated for cross container function call?
102105
}

0 commit comments

Comments
 (0)