diff --git a/kernel/src/holeybytes/ecah.rs b/kernel/src/holeybytes/ecah.rs index b3f82a27a..c43226bd0 100644 --- a/kernel/src/holeybytes/ecah.rs +++ b/kernel/src/holeybytes/ecah.rs @@ -77,20 +77,23 @@ pub fn handler(vm: &mut Vm) { buffer_id => { let mut buffs = IPC_BUFFERS.lock(); - let mut buff = buffs.get_mut(&buffer_id).unwrap(); + match buffs.get_mut(&buffer_id) { + Some(buff) => { + let mut msg_vec = vec![]; - let mut msg_vec = vec![]; - - for x in 0..(length as isize) { - let xyz = mem_addr as *const u8; - let value = unsafe { xyz.offset(x).read() }; - msg_vec.push(value); + for x in 0..(length as isize) { + let xyz = mem_addr as *const u8; + let value = unsafe { xyz.offset(x).read() }; + msg_vec.push(value); + } + buff.push(msg_vec.clone()); + info!( + "Message {:?} has been sent to Buffer({})", + msg_vec, buffer_id + ); + } + None => log::error!("Access of non-existent buffer") } - buff.push(msg_vec.clone()); - info!( - "Message {:?} has been sent to Buffer({})", - msg_vec, buffer_id - ); drop(buffs); } } diff --git a/sysdata/test-programs/main.rhai b/sysdata/test-programs/main.rhai index 63a2f2253..1875f365c 100644 --- a/sysdata/test-programs/main.rhai +++ b/sysdata/test-programs/main.rhai @@ -8,8 +8,9 @@ fn main(){ std::Trace("Trace Deez"); std::ipc_send(2, 0, 0); + std::ipc_send(3, 0, 0); tx(); } -main(); \ No newline at end of file +main();