Bump nix and ctrlc crate to resolve audit failures (#20558)
* Bump nix and ctrlc * Update to direct error variants * Use statement cleanup
This commit is contained in:
		@@ -1,5 +1,4 @@
 | 
			
		||||
use std::io;
 | 
			
		||||
use std::process::Child;
 | 
			
		||||
use std::{io, process::Child};
 | 
			
		||||
 | 
			
		||||
fn kill_process(process: &mut Child) -> Result<(), io::Error> {
 | 
			
		||||
    if let Ok(()) = process.kill() {
 | 
			
		||||
@@ -17,13 +16,18 @@ pub fn stop_process(process: &mut Child) -> Result<(), io::Error> {
 | 
			
		||||
 | 
			
		||||
#[cfg(not(windows))]
 | 
			
		||||
pub fn stop_process(process: &mut Child) -> Result<(), io::Error> {
 | 
			
		||||
    use nix::errno::Errno::{EINVAL, EPERM, ESRCH};
 | 
			
		||||
    use nix::sys::signal::{kill, Signal};
 | 
			
		||||
    use nix::unistd::Pid;
 | 
			
		||||
    use nix::Error::Sys;
 | 
			
		||||
    use std::io::ErrorKind;
 | 
			
		||||
    use std::thread;
 | 
			
		||||
    use std::time::{Duration, Instant};
 | 
			
		||||
    use {
 | 
			
		||||
        nix::{
 | 
			
		||||
            errno::Errno::{EINVAL, EPERM, ESRCH},
 | 
			
		||||
            sys::signal::{kill, Signal},
 | 
			
		||||
            unistd::Pid,
 | 
			
		||||
        },
 | 
			
		||||
        std::{
 | 
			
		||||
            io::ErrorKind,
 | 
			
		||||
            thread,
 | 
			
		||||
            time::{Duration, Instant},
 | 
			
		||||
        },
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let nice_wait = Duration::from_secs(5);
 | 
			
		||||
    let pid = Pid::from_raw(process.id() as i32);
 | 
			
		||||
@@ -40,17 +44,17 @@ pub fn stop_process(process: &mut Child) -> Result<(), io::Error> {
 | 
			
		||||
                kill_process(process)?;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        Err(Sys(EINVAL)) => {
 | 
			
		||||
        Err(EINVAL) => {
 | 
			
		||||
            println!("Invalid signal. Killing process {}", pid);
 | 
			
		||||
            kill_process(process)?;
 | 
			
		||||
        }
 | 
			
		||||
        Err(Sys(EPERM)) => {
 | 
			
		||||
        Err(EPERM) => {
 | 
			
		||||
            return Err(io::Error::new(
 | 
			
		||||
                ErrorKind::InvalidInput,
 | 
			
		||||
                format!("Insufficient permissions to signal process {}", pid),
 | 
			
		||||
            ));
 | 
			
		||||
        }
 | 
			
		||||
        Err(Sys(ESRCH)) => {
 | 
			
		||||
        Err(ESRCH) => {
 | 
			
		||||
            return Err(io::Error::new(
 | 
			
		||||
                ErrorKind::InvalidInput,
 | 
			
		||||
                format!("Process {} does not exist", pid),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user