diff --git a/vmm/src/lib.rs b/vmm/src/lib.rs index f46d786be..7bf5aa0b4 100644 --- a/vmm/src/lib.rs +++ b/vmm/src/lib.rs @@ -757,10 +757,10 @@ impl Vmm { let mut socket = match url.scheme() { "unix" => { - let listener = UnixListener::bind(url.to_file_path().map_err(|_| { + let path = url.to_file_path().map_err(|_| { MigratableError::MigrateReceive(anyhow!("Error extracting path from URL")) - })?) - .map_err(|e| { + })?; + let listener = UnixListener::bind(&path).map_err(|e| { MigratableError::MigrateReceive(anyhow!("Error binding to UNIX socket: {}", e)) })?; let (socket, _addr) = listener.accept().map_err(|e| { @@ -769,6 +769,9 @@ impl Vmm { e )) })?; + std::fs::remove_file(&path).map_err(|e| { + MigratableError::MigrateReceive(anyhow!("Error unlinking UNIX socket: {}", e)) + })?; socket } _ => {