From 3b2ff8d5d1105ef1d87242c2977e685e97974d52 Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Fri, 10 Apr 2026 07:50:35 -0700 Subject: [PATCH 1/2] Enhance variant use in firewall --- resources/windows_firewall/src/firewall.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/windows_firewall/src/firewall.rs b/resources/windows_firewall/src/firewall.rs index 8c570e550..0a8afcb84 100644 --- a/resources/windows_firewall/src/firewall.rs +++ b/resources/windows_firewall/src/firewall.rs @@ -21,6 +21,10 @@ impl SafeVariant { Self(VARIANT::default()) } + fn as_mut(&mut self) -> &mut VARIANT { + &mut self.0 + } + fn as_mut_ptr(&mut self) -> *mut VARIANT { &mut self.0 } @@ -33,7 +37,7 @@ impl SafeVariant { impl Drop for SafeVariant { fn drop(&mut self) { if let Err(e) = unsafe { VariantClear(&mut self.0) } { - crate::write_error(&format!("Warning: VariantClear failed with HRESULT: {:#010x}", e.code().0)); + crate::write_error(&format!("Warning: VariantClear failed with HRESULT: {:#010x}", e.code().0 as u32)); } } } @@ -81,8 +85,7 @@ impl FirewallStore { loop { let mut fetched = 0u32; let mut safe_variant = SafeVariant::new(); - let variant_slice = unsafe { std::slice::from_raw_parts_mut(safe_variant.as_mut_ptr(), 1) }; - let hr = unsafe { enum_variant.Next(variant_slice, &mut fetched) }; + let hr = unsafe { enum_variant.Next(std::slice::from_mut(safe_variant.as_mut()), &mut fetched) }; if hr == S_FALSE || fetched == 0 { break; } From 9fff498f32840adf411bbabaa5c2eba79e805d94 Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Fri, 10 Apr 2026 10:01:23 -0700 Subject: [PATCH 2/2] remove unused code --- resources/windows_firewall/src/firewall.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/resources/windows_firewall/src/firewall.rs b/resources/windows_firewall/src/firewall.rs index 0a8afcb84..468ca3284 100644 --- a/resources/windows_firewall/src/firewall.rs +++ b/resources/windows_firewall/src/firewall.rs @@ -25,10 +25,6 @@ impl SafeVariant { &mut self.0 } - fn as_mut_ptr(&mut self) -> *mut VARIANT { - &mut self.0 - } - fn as_ref(&self) -> &VARIANT { &self.0 }