File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -159,9 +159,15 @@ impl From<ExecutionResult> for sys::FizzyExecutionResult {
159159}
160160
161161impl Instance {
162- fn checked_memory_range ( & self , offset : u32 ) -> Result < core:: ops:: Range < usize > , ( ) > {
162+ fn checked_memory_range (
163+ & self ,
164+ offset : u32 ,
165+ size : usize ,
166+ ) -> Result < core:: ops:: Range < usize > , ( ) > {
163167 let offset = offset as usize ;
164- let size = 0 as usize ;
168+ if ( offset + size) > self . memory_size ( ) {
169+ return Err ( ( ) ) ;
170+ }
165171 Ok ( offset..offset + size)
166172 }
167173
@@ -178,7 +184,7 @@ impl Instance {
178184 sys:: fizzy_get_instance_memory_size ( self . 0 . as_ptr ( ) ) ,
179185 )
180186 } ;
181- target. copy_from_slice ( & mem[ self . checked_memory_range ( offset) ?] ) ;
187+ target. copy_from_slice ( & mem[ self . checked_memory_range ( offset, target . len ( ) ) ?] ) ;
182188 Ok ( ( ) )
183189 }
184190
@@ -190,7 +196,7 @@ impl Instance {
190196 sys:: fizzy_get_instance_memory_size ( self . 0 . as_ptr ( ) ) ,
191197 )
192198 } ;
193- mem[ self . checked_memory_range ( offset) ?] . copy_from_slice ( source) ;
199+ mem[ self . checked_memory_range ( offset, source . len ( ) ) ?] . copy_from_slice ( source) ;
194200 Ok ( ( ) )
195201 }
196202
You can’t perform that action at this time.
0 commit comments