diff --git a/zssp/src/fragged.rs b/zssp/src/fragged.rs index 0b7e5c396..fe9fdd405 100644 --- a/zssp/src/fragged.rs +++ b/zssp/src/fragged.rs @@ -1,8 +1,8 @@ use std::cell::UnsafeCell; use std::mem::{needs_drop, size_of, zeroed, MaybeUninit}; use std::ptr::slice_from_raw_parts; -use std::sync::RwLock; use std::sync::atomic::{AtomicU64, Ordering}; +use std::sync::RwLock; /// Fast packet defragmenter pub struct Fragged { @@ -47,7 +47,7 @@ impl Fragged { Self { counter_want: RwLock::new((0, 0)), have: AtomicU64::new(0), - frags: unsafe {zeroed()}, + frags: unsafe { zeroed() }, } } @@ -95,7 +95,6 @@ impl Fragged { if got & r_want > 0 && 1u64.wrapping_shl(fragment_count as u32) - 1 == r_want { let have = self.have.fetch_or(got, Ordering::Relaxed); if have & got == 0 { - unsafe { (*self.frags.get()).get_unchecked_mut(fragment_no as usize).write(fragment); } diff --git a/zssp/src/zssp.rs b/zssp/src/zssp.rs index 78249c996..dc3856bd6 100644 --- a/zssp/src/zssp.rs +++ b/zssp/src/zssp.rs @@ -460,8 +460,12 @@ impl Context { if session.check_receive_window(incoming_counter) { let (assembled_packet, incoming_packet_buf_arr); let incoming_packet = if fragment_count > 1 { - assembled_packet = session.defrag[(incoming_counter as usize) % COUNTER_WINDOW_MAX_OOO] - .assemble(incoming_counter, incoming_physical_packet_buf, fragment_no, fragment_count); + assembled_packet = session.defrag[(incoming_counter as usize) % COUNTER_WINDOW_MAX_OOO].assemble( + incoming_counter, + incoming_physical_packet_buf, + fragment_no, + fragment_count, + ); if let Some(assembled_packet) = assembled_packet.as_ref() { assembled_packet.as_ref() } else {