diff --git a/src/apis/emscripten/mod.rs b/src/apis/emscripten/mod.rs index 78fde4c05..498be032e 100644 --- a/src/apis/emscripten/mod.rs +++ b/src/apis/emscripten/mod.rs @@ -52,11 +52,13 @@ fn dynamictop_ptr(static_bump: u32) -> u32 { pub fn emscripten_set_up_memory(memory: &mut LinearMemory) { let dynamictop_ptr = dynamictop_ptr(STATIC_BUMP) as usize; - // We avoid failures of setting the u32 - if (dynamictop_ptr > memory.len()) { + let dynamictop_ptr_offset = dynamictop_ptr + mem::size_of::(); + + // We avoid failures of setting the u32 in our memory if it's out of bounds + if dynamictop_ptr_offset > memory.len() { return; } - let mem = &mut memory[dynamictop_ptr..dynamictop_ptr + mem::size_of::()]; + let mem = &mut memory[dynamictop_ptr..dynamictop_ptr_offset]; LittleEndian::write_u32(mem, dynamic_base(STATIC_BUMP)); } diff --git a/src/apis/emscripten/signal.rs b/src/apis/emscripten/signal.rs index 39eb86273..cd387615f 100644 --- a/src/apis/emscripten/signal.rs +++ b/src/apis/emscripten/signal.rs @@ -1,7 +1,7 @@ // use super::varargs::VarArgs; use crate::webassembly::Instance; -pub extern "C" fn _sigemptyset(set: u32, instance: &mut Instance) -> i32 { +pub extern "C" fn _sigemptyset(_set: u32, _instance: &mut Instance) -> i32 { debug!("emscripten::_sigemptyset"); // let set_addr = instance.memory_offset_addr(0, set as _) as *mut u32; // unsafe { @@ -10,7 +10,7 @@ pub extern "C" fn _sigemptyset(set: u32, instance: &mut Instance) -> i32 { 0 } -pub extern "C" fn _sigaction(_signum: u32, act: u32, oldact: u32) -> i32 { +pub extern "C" fn _sigaction(_signum: u32, _act: u32, _oldact: u32) -> i32 { debug!("emscripten::_sigaction"); 0 } diff --git a/src/apis/emscripten/syscalls.rs b/src/apis/emscripten/syscalls.rs index ee101521e..86b0e19ff 100644 --- a/src/apis/emscripten/syscalls.rs +++ b/src/apis/emscripten/syscalls.rs @@ -128,7 +128,7 @@ pub extern "C" fn ___syscall12( ) -> c_int { debug!("emscripten::___syscall12 (chdir)"); let path_addr: i32 = varargs.get(instance); - let path = unsafe { + let _path = unsafe { let path_ptr = instance.memory_offset_addr(0, path_addr as usize) as *const i8; let path = std::ffi::CStr::from_ptr(path_ptr).to_str().unwrap(); debug!("=> path: {}", path); @@ -178,8 +178,6 @@ pub extern "C" fn ___syscall54( 0 } -use std::mem::size_of; - // socketcall pub extern "C" fn ___syscall102( _which: c_int, diff --git a/src/update.rs b/src/update.rs index aec8951da..df3bcfe28 100644 --- a/src/update.rs +++ b/src/update.rs @@ -1,5 +1,4 @@ //! When wasmer self-update is executed, this is what gets executed -use std::io; use std::process::{Command, Stdio}; pub fn self_update() { @@ -18,5 +17,5 @@ pub fn self_update() { .ok() .expect("Failed to execute."); - the_process.wait(); + the_process.wait().unwrap(); }