diff options
| author | David Lönnhager <david.l@mullvad.net> | 2023-04-26 11:04:27 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2023-04-26 11:04:27 +0200 |
| commit | bd7f9715146d39ca979cdea8694c1460b372d9ac (patch) | |
| tree | 8f1fbfe4ad1abdb46b2002f7c296045f35706a47 | |
| parent | d50d55254e0e1378bc6f7b5acbf6be59ed909f6f (diff) | |
| parent | a199f85461ac7af507ee94d6e10b012f1c591bcb (diff) | |
| download | mullvadvpn-bd7f9715146d39ca979cdea8694c1460b372d9ac.tar.xz mullvadvpn-bd7f9715146d39ca979cdea8694c1460b372d9ac.zip | |
Merge branch 'win-fix-clippy-errors-des-178'
| -rw-r--r-- | .github/workflows/clippy.yml | 7 | ||||
| -rw-r--r-- | mullvad-cli/src/cmds/split_tunnel/windows.rs | 2 | ||||
| -rw-r--r-- | mullvad-cli/src/cmds/tunnel.rs | 2 | ||||
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 4 | ||||
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 3 | ||||
| -rw-r--r-- | mullvad-daemon/src/migrations/mod.rs | 6 | ||||
| -rw-r--r-- | mullvad-daemon/src/migrations/v6.rs | 3 | ||||
| -rw-r--r-- | mullvad-daemon/src/settings.rs | 3 | ||||
| -rw-r--r-- | mullvad-daemon/src/system_service.rs | 4 | ||||
| -rw-r--r-- | mullvad-version/build.rs | 7 | ||||
| -rw-r--r-- | talpid-core/build.rs | 4 | ||||
| -rw-r--r-- | talpid-core/src/firewall/mod.rs | 7 | ||||
| -rw-r--r-- | talpid-core/src/firewall/windows.rs | 4 | ||||
| -rw-r--r-- | talpid-core/src/offline/windows.rs | 1 | ||||
| -rw-r--r-- | talpid-core/src/split_tunnel/windows/driver.rs | 4 | ||||
| -rw-r--r-- | talpid-core/src/split_tunnel/windows/path_monitor.rs | 20 | ||||
| -rw-r--r-- | talpid-tunnel-config-client/src/kyber.rs | 3 |
17 files changed, 45 insertions, 39 deletions
diff --git a/.github/workflows/clippy.yml b/.github/workflows/clippy.yml index 524e329422..2c28af450b 100644 --- a/.github/workflows/clippy.yml +++ b/.github/workflows/clippy.yml @@ -9,7 +9,10 @@ on: workflow_dispatch: jobs: clippy_check: - runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v3 @@ -29,11 +32,13 @@ jobs: override: true - name: Install build dependencies + if: matrix.os == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install libdbus-1-dev - name: Clippy check + shell: bash run: |- export RUSTFLAGS="--deny warnings" source env.sh diff --git a/mullvad-cli/src/cmds/split_tunnel/windows.rs b/mullvad-cli/src/cmds/split_tunnel/windows.rs index 9766607ce1..a133ab9682 100644 --- a/mullvad-cli/src/cmds/split_tunnel/windows.rs +++ b/mullvad-cli/src/cmds/split_tunnel/windows.rs @@ -21,7 +21,7 @@ impl Command for SplitTunnel { .arg( clap::Arg::new("policy") .required(true) - .possible_values(&["on", "off"]), + .possible_values(["on", "off"]), ), ) .subcommand(clap::App::new("get").about("Display the split tunnel status")) diff --git a/mullvad-cli/src/cmds/tunnel.rs b/mullvad-cli/src/cmds/tunnel.rs index 647c3627d1..1d2fd1a7bb 100644 --- a/mullvad-cli/src/cmds/tunnel.rs +++ b/mullvad-cli/src/cmds/tunnel.rs @@ -92,7 +92,7 @@ fn create_wireguard_use_wg_nt_subcommand() -> clap::App<'static> { clap::Arg::new("policy") .required(true) .takes_value(true) - .possible_values(&["on", "off"]), + .possible_values(["on", "off"]), ), ) } diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index b68bf8f0d0..3e18341818 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -1040,7 +1040,7 @@ where #[cfg(target_os = "windows")] UseWireGuardNt(tx, state) => self.on_use_wireguard_nt(tx, state).await, #[cfg(target_os = "windows")] - CheckVolumes(tx) => self.on_check_volumes(tx).await, + CheckVolumes(tx) => self.on_check_volumes(tx), SetObfuscationSettings(tx, settings) => { self.on_set_obfuscation_settings(tx, settings).await } @@ -1762,7 +1762,7 @@ where } #[cfg(windows)] - async fn on_check_volumes(&mut self, tx: ResponseTx<(), Error>) { + fn on_check_volumes(&mut self, tx: ResponseTx<(), Error>) { if self.volume_update_tx.unbounded_send(()).is_ok() { let _ = tx.send(Ok(())); } diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index c231c8a49e..ad2b556bcb 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -757,8 +757,7 @@ impl ManagementService for ManagementServiceImpl { processes: processes .into_iter() .map(|process| types::ExcludedProcess { - // FIXME: This is necessarily 32 bits or less - pid: u32::try_from(process.pid).unwrap(), + pid: process.pid, image: process.image.into_os_string().to_string_lossy().to_string(), inherited: process.inherited, }) diff --git a/mullvad-daemon/src/migrations/mod.rs b/mullvad-daemon/src/migrations/mod.rs index 5d93045b04..8cf7b4a636 100644 --- a/mullvad-daemon/src/migrations/mod.rs +++ b/mullvad-daemon/src/migrations/mod.rs @@ -226,7 +226,7 @@ mod windows { WrongOwner, #[error(display = "Failed to copy files during migration")] - IoError(#[error(source)] io::Error), + Io(#[error(source)] io::Error), } /// Attempts to restore the Mullvad settings from `C:\windows.old` after an update of Windows. @@ -278,7 +278,7 @@ mod windows { if !destination_settings_dir.exists() { fs::create_dir_all(destination_settings_dir) .await - .map_err(Error::IoError)?; + .map_err(Error::Io)?; } let mut result = Ok(true); @@ -303,7 +303,7 @@ mod windows { )) ); if *required { - result = Err(Error::IoError(error)); + result = Err(Error::Io(error)); } } } diff --git a/mullvad-daemon/src/migrations/v6.rs b/mullvad-daemon/src/migrations/v6.rs index 66e6f90343..54dc2268e4 100644 --- a/mullvad-daemon/src/migrations/v6.rs +++ b/mullvad-daemon/src/migrations/v6.rs @@ -1,6 +1,5 @@ use super::{Error, Result}; -use mullvad_types::relay_constraints::Constraint; -use mullvad_types::settings::SettingsVersion; +use mullvad_types::{relay_constraints::Constraint, settings::SettingsVersion}; // ====================================================== // Section for vendoring types and values that diff --git a/mullvad-daemon/src/settings.rs b/mullvad-daemon/src/settings.rs index ec73aabbe5..5e90067166 100644 --- a/mullvad-daemon/src/settings.rs +++ b/mullvad-daemon/src/settings.rs @@ -297,7 +297,8 @@ impl<'a> Display for SettingsSummary<'a> { write!(f, "{}", content.join(" "))?; } DnsState::Custom => { - // NOTE: Technically inaccurate, as the gateway IP is a local IP but isn't treated as one. + // NOTE: Technically inaccurate, as the gateway IP is a local IP but isn't treated + // as one. let contains_local = self .settings .tunnel_options diff --git a/mullvad-daemon/src/system_service.rs b/mullvad-daemon/src/system_service.rs index 7b0a903324..9432e8449b 100644 --- a/mullvad-daemon/src/system_service.rs +++ b/mullvad-daemon/src/system_service.rs @@ -4,7 +4,7 @@ use mullvad_daemon::{runtime::new_runtime_builder, DaemonShutdownHandle}; use std::{ env, ffi::OsString, - mem, ptr, slice, + ptr, slice, sync::{ atomic::{AtomicBool, AtomicUsize, Ordering}, mpsc, Arc, @@ -463,7 +463,7 @@ impl HibernationDetector { break; } } - mem::drop(logons); + // SAFETY: `logons` must no longer be referenced after this unsafe { LsaFreeReturnBuffer(logon_session_list as *mut c_void) }; interactive } diff --git a/mullvad-version/build.rs b/mullvad-version/build.rs index 2e1ce9f3c1..08145b0924 100644 --- a/mullvad-version/build.rs +++ b/mullvad-version/build.rs @@ -1,5 +1,8 @@ -use std::path::Path; -use std::{env, fs, path::PathBuf, process::Command}; +use std::{ + env, fs, + path::{Path, PathBuf}, + process::Command, +}; /// How many characters of the git commit that should be added to the version name /// in dev builds. diff --git a/talpid-core/build.rs b/talpid-core/build.rs index e9afafe39c..1c16a35e74 100644 --- a/talpid-core/build.rs +++ b/talpid-core/build.rs @@ -2,10 +2,10 @@ mod win { use std::{env, path::PathBuf}; - pub static WINFW_BUILD_DIR: &'static str = "..\\windows\\winfw\\bin"; + pub static WINFW_BUILD_DIR: &str = "..\\windows\\winfw\\bin"; pub fn default_windows_build_artifact_dir(build_dir: &str) -> PathBuf { - manifest_dir().join(build_dir).join(&target_platform_dir()) + manifest_dir().join(build_dir).join(target_platform_dir()) } fn target_platform_dir() -> PathBuf { diff --git a/talpid-core/src/firewall/mod.rs b/talpid-core/src/firewall/mod.rs index 2def49bc17..e168ec3f39 100644 --- a/talpid-core/src/firewall/mod.rs +++ b/talpid-core/src/firewall/mod.rs @@ -1,11 +1,10 @@ use ipnetwork::{IpNetwork, Ipv4Network, Ipv6Network}; use lazy_static::lazy_static; -use std::net::IpAddr; #[cfg(windows)] use std::path::PathBuf; use std::{ fmt, - net::{Ipv4Addr, Ipv6Addr}, + net::{IpAddr, Ipv4Addr, Ipv6Addr}, }; use talpid_types::net::{AllowedEndpoint, AllowedTunnelTraffic, Endpoint}; @@ -136,8 +135,8 @@ pub enum FirewallPolicy { allow_lan: bool, /// Host that should be reachable while in the blocked state. allowed_endpoint: Option<AllowedEndpoint>, - /// Destination port for DNS traffic redirection. Traffic destined to `127.0.0.1:53` will be - /// redirected to `127.0.0.1:$dns_redirect_port`. + /// Destination port for DNS traffic redirection. Traffic destined to `127.0.0.1:53` will + /// be redirected to `127.0.0.1:$dns_redirect_port`. #[cfg(target_os = "macos")] dns_redirect_port: u16, }, diff --git a/talpid-core/src/firewall/windows.rs b/talpid-core/src/firewall/windows.rs index 9935834595..b7b4ac39f6 100644 --- a/talpid-core/src/firewall/windows.rs +++ b/talpid-core/src/firewall/windows.rs @@ -168,8 +168,8 @@ impl Firewall { ptr::null() }; - // SAFETY: `endpoint1_ip`, `endpoint2_ip`, `endpoint1` and `endpoint2` must not be dropped until - // `WinFw_ApplyPolicyConnecting` has returned. + // SAFETY: `endpoint1_ip`, `endpoint2_ip`, `endpoint1` and `endpoint2` must not be dropped + // until `WinFw_ApplyPolicyConnecting` has returned. let mut endpoint1_ip = WideCString::new(); let mut endpoint2_ip = WideCString::new(); let (endpoint1, endpoint2) = match allowed_tunnel_traffic { diff --git a/talpid-core/src/offline/windows.rs b/talpid-core/src/offline/windows.rs index d669a018fa..2756f9c690 100644 --- a/talpid-core/src/offline/windows.rs +++ b/talpid-core/src/offline/windows.rs @@ -138,6 +138,7 @@ impl BroadcastListener { state.apply_change(change); } + #[allow(clippy::unused_async)] pub async fn host_is_offline(&self) -> bool { let state = self.system_state.lock(); state.is_offline_currently() diff --git a/talpid-core/src/split_tunnel/windows/driver.rs b/talpid-core/src/split_tunnel/windows/driver.rs index 8beb6de691..04666de9ec 100644 --- a/talpid-core/src/split_tunnel/windows/driver.rs +++ b/talpid-core/src/split_tunnel/windows/driver.rs @@ -932,8 +932,8 @@ pub unsafe fn wait_for_multiple_objects(objects: &[HANDLE], wait_all: bool) -> i if wait_all { 1 } else { 0 }, INFINITE, ); - let signaled_index = if result >= WAIT_OBJECT_0 && result < WAIT_OBJECT_0 + objects_len { - result - WAIT_OBJECT_0 + let signaled_index = if result < objects_len { + result } else if result >= WAIT_ABANDONED_0 && result < WAIT_ABANDONED_0 + objects_len { return Err(io::Error::new(io::ErrorKind::Other, "abandoned mutex")); } else { diff --git a/talpid-core/src/split_tunnel/windows/path_monitor.rs b/talpid-core/src/split_tunnel/windows/path_monitor.rs index fa90896024..9470c66d9f 100644 --- a/talpid-core/src/split_tunnel/windows/path_monitor.rs +++ b/talpid-core/src/split_tunnel/windows/path_monitor.rs @@ -499,7 +499,7 @@ impl PathMonitor { std::thread::spawn(move || { loop { - if !monitor.service_commands(&mut original_paths, &cmd_rx) { + if !monitor.process_command(&mut original_paths, &cmd_rx) { break; } match monitor.handle_next_completion_packet() { @@ -528,26 +528,24 @@ impl PathMonitor { }) } - fn service_commands( + /// Handle the next command from the `PathMonitorHandle`, if there is one. + fn process_command( &mut self, original_paths: &mut Vec<PathBuf>, cmd_rx: &sync_mpsc::Receiver<PathMonitorCommand>, ) -> bool { - while let Some(cmd) = cmd_rx.try_iter().next() { + if let Ok(cmd) = cmd_rx.try_recv() { match cmd { - PathMonitorCommand::Shutdown => { - return false; - } + PathMonitorCommand::Shutdown => false, PathMonitorCommand::SetPaths(new_paths) => { *original_paths = new_paths; - return self.update_paths(original_paths, false).is_ok(); - } - PathMonitorCommand::Refresh => { - return self.update_paths(original_paths, true).is_ok(); + self.update_paths(original_paths, false).is_ok() } + PathMonitorCommand::Refresh => self.update_paths(original_paths, true).is_ok(), } + } else { + true } - true } fn update_paths(&mut self, unresolved_paths: &[PathBuf], force: bool) -> Result<bool, ()> { diff --git a/talpid-tunnel-config-client/src/kyber.rs b/talpid-tunnel-config-client/src/kyber.rs index 0946e7f5c2..5654b2e10b 100644 --- a/talpid-tunnel-config-client/src/kyber.rs +++ b/talpid-tunnel-config-client/src/kyber.rs @@ -6,7 +6,8 @@ pub use pqc_kyber::{keypair, KyberError}; /// benefit of going with anything lower. pub const ALGORITHM_NAME: &str = "Kyber1024"; -// Always inline in order to try to avoid potential copies of `shared_secret` to multiple places on the stack. +// Always inline in order to try to avoid potential copies of `shared_secret` to multiple places on +// the stack. #[inline(always)] pub fn decapsulate( secret_key: SecretKey, |
