diff --git a/crates/pf-capture/src/windows/idd_push.rs b/crates/pf-capture/src/windows/idd_push.rs index 78dc005a..2b83b77d 100644 --- a/crates/pf-capture/src/windows/idd_push.rs +++ b/crates/pf-capture/src/windows/idd_push.rs @@ -2076,7 +2076,9 @@ fn deliver_cursor_channel( cs: &cursor::CursorShared, send_cursor: &crate::CursorChannelSender, ) -> bool { - let value = match broker.dup_into_public(cs.section_handle()) { + // SAFETY: `cs.section_handle()` borrows the section mapping `cs` owns (live across this + // synchronous call); the broker's WUDFHost process handle is live for the broker's lifetime. + let value = match unsafe { broker.dup_into_public(cs.section_handle()) } { Ok(v) => v, Err(e) => { tracing::warn!("cursor section duplication failed (composited cursor stays): {e:#}");