@@ -712,7 +712,7 @@ impl VM {
712
712
let b = self . stack . pop ( ) ?;
713
713
714
714
// convert a to usize
715
- let usize_a: usize = a. value . try_into ( ) ? ;
715
+ let usize_a: usize = a. value . try_into ( ) . unwrap_or ( usize :: MAX ) ;
716
716
717
717
let mut result = I256 :: ZERO ;
718
718
if !b. value . is_zero ( ) {
@@ -737,8 +737,8 @@ impl VM {
737
737
let size = self . stack . pop ( ) ?. value ;
738
738
739
739
// Safely convert U256 to usize
740
- let offset: usize = offset. try_into ( ) ? ;
741
- let size: usize = size. try_into ( ) ? ;
740
+ let offset: usize = offset. try_into ( ) . unwrap_or ( usize :: MAX ) ;
741
+ let size: usize = size. try_into ( ) . unwrap_or ( usize :: MAX ) ;
742
742
743
743
let data = self . memory . read ( offset, size) ;
744
744
let result = keccak256 ( data) ;
@@ -802,7 +802,7 @@ impl VM {
802
802
let i = self . stack . pop ( ) ?. value ;
803
803
804
804
// Safely convert U256 to usize
805
- let i: usize = i. try_into ( ) ? ;
805
+ let i: usize = i. try_into ( ) . unwrap_or ( usize :: MAX ) ;
806
806
807
807
let result = if i + 32 > self . calldata . len ( ) {
808
808
let mut value = [ 0u8 ; 32 ] ;
@@ -932,8 +932,8 @@ impl VM {
932
932
let size = self . stack . pop ( ) ?. value ;
933
933
934
934
// Safely convert U256 to usize
935
- let dest_offset: usize = dest_offset. try_into ( ) ? ;
936
- let size: usize = size. try_into ( ) ? ;
935
+ let dest_offset: usize = dest_offset. try_into ( ) . unwrap_or ( usize :: MAX ) ;
936
+ let size: usize = size. try_into ( ) . unwrap_or ( usize :: MAX ) ;
937
937
938
938
let mut value = Vec :: with_capacity ( size) ;
939
939
value. fill ( 0xff ) ;
@@ -971,8 +971,8 @@ impl VM {
971
971
let size = self . stack . pop ( ) ?. value ;
972
972
973
973
// Safely convert U256 to usize
974
- let dest_offset: usize = dest_offset. try_into ( ) ? ;
975
- let size: usize = size. try_into ( ) ? ;
974
+ let dest_offset: usize = dest_offset. try_into ( ) . unwrap_or ( usize :: MAX ) ;
975
+ let size: usize = size. try_into ( ) . unwrap_or ( usize :: MAX ) ;
976
976
977
977
let mut value = Vec :: with_capacity ( size) ;
978
978
value. fill ( 0xff ) ;
@@ -1033,7 +1033,7 @@ impl VM {
1033
1033
// MLOAD
1034
1034
0x51 => {
1035
1035
let i = self . stack . pop ( ) ?. value ;
1036
- let i: usize = i. try_into ( ) ? ;
1036
+ let i: usize = i. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1037
1037
1038
1038
let result = U256 :: from_be_slice ( self . memory . read ( i, 32 ) . as_slice ( ) ) ;
1039
1039
@@ -1050,7 +1050,7 @@ impl VM {
1050
1050
let value = self . stack . pop ( ) ?. value ;
1051
1051
1052
1052
// Safely convert U256 to usize
1053
- let offset: usize = offset. try_into ( ) ? ;
1053
+ let offset: usize = offset. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1054
1054
1055
1055
// consume dynamic gas
1056
1056
let gas_cost = self . memory . expansion_cost ( offset, 32 ) ;
@@ -1071,7 +1071,7 @@ impl VM {
1071
1071
let value = self . stack . pop ( ) ?. value ;
1072
1072
1073
1073
// Safely convert U256 to usize
1074
- let offset: usize = offset. try_into ( ) ? ;
1074
+ let offset: usize = offset. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1075
1075
1076
1076
// consume dynamic gas
1077
1077
let gas_cost = self . memory . expansion_cost ( offset, 1 ) ;
@@ -1289,8 +1289,8 @@ impl VM {
1289
1289
self . stack . pop_n ( topic_count as usize ) . iter ( ) . map ( |x| x. value ) . collect ( ) ;
1290
1290
1291
1291
// Safely convert U256 to usize
1292
- let offset: usize = offset. try_into ( ) ? ;
1293
- let size: usize = size. try_into ( ) ? ;
1292
+ let offset: usize = offset. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1293
+ let size: usize = size. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1294
1294
1295
1295
let data = self . memory . read ( offset, size) ;
1296
1296
@@ -1341,8 +1341,8 @@ impl VM {
1341
1341
let size = self . stack . pop ( ) ?. value ;
1342
1342
1343
1343
// Safely convert U256 to usize
1344
- let offset: usize = offset. try_into ( ) ? ;
1345
- let size: usize = size. try_into ( ) ? ;
1344
+ let offset: usize = offset. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1345
+ let size: usize = size. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1346
1346
1347
1347
// consume dynamic gas
1348
1348
let gas_cost = self . memory . expansion_cost ( offset, size) ;
@@ -1380,8 +1380,8 @@ impl VM {
1380
1380
let size = self . stack . pop ( ) ?. value ;
1381
1381
1382
1382
// Safely convert U256 to usize
1383
- let offset: usize = offset. try_into ( ) ? ;
1384
- let size: usize = size. try_into ( ) ? ;
1383
+ let offset: usize = offset. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1384
+ let size: usize = size. try_into ( ) . unwrap_or ( usize :: MAX ) ;
1385
1385
1386
1386
self . exit ( 1 , self . memory . read ( offset, size) ) ;
1387
1387
}
0 commit comments