File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -160,9 +160,15 @@ impl From<ExecutionResult> for sys::FizzyExecutionResult {
160160}
161161
162162impl Instance {
163- fn checked_memory_range ( & self , offset : u32 ) -> Result < core:: ops:: Range < usize > , ( ) > {
163+ fn checked_memory_range (
164+ & self ,
165+ offset : u32 ,
166+ size : usize ,
167+ ) -> Result < core:: ops:: Range < usize > , ( ) > {
164168 let offset = offset as usize ;
165- let size = 0 as usize ;
169+ if ( offset + size) > self . memory_size ( ) {
170+ return Err ( ( ) ) ;
171+ }
166172 Ok ( offset..offset + size)
167173 }
168174
@@ -179,7 +185,7 @@ impl Instance {
179185 sys:: fizzy_get_instance_memory_size ( self . 0 . as_ptr ( ) ) ,
180186 )
181187 } ;
182- target. copy_from_slice ( & mem[ self . checked_memory_range ( offset) ?] ) ;
188+ target. copy_from_slice ( & mem[ self . checked_memory_range ( offset, target . len ( ) ) ?] ) ;
183189 Ok ( ( ) )
184190 }
185191
@@ -191,7 +197,7 @@ impl Instance {
191197 sys:: fizzy_get_instance_memory_size ( self . 0 . as_ptr ( ) ) ,
192198 )
193199 } ;
194- mem[ self . checked_memory_range ( offset) ?] . copy_from_slice ( source) ;
200+ mem[ self . checked_memory_range ( offset, source . len ( ) ) ?] . copy_from_slice ( source) ;
195201 Ok ( ( ) )
196202 }
197203
You can’t perform that action at this time.
0 commit comments