From 1486fc7418a43d7e9b4272246ed86f018d48a5dc Mon Sep 17 00:00:00 2001 From: Jake Hillion Date: Wed, 27 Apr 2022 13:16:43 +0100 Subject: [PATCH] ignore sighup to let void outlive the shim --- src/void.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/void.rs b/src/void.rs index da8247b..1a67333 100644 --- a/src/void.rs +++ b/src/void.rs @@ -10,7 +10,7 @@ use std::path::{Path, PathBuf}; use nix::mount::{mount, umount2, MntFlags, MsFlags}; use nix::sched::unshare; -use nix::sys::signal::Signal; +use nix::sys::signal::{signal, SigHandler, Signal}; use nix::unistd::{pivot_root, Pid}; use close_fds::CloseFdsBuilder; @@ -57,6 +57,13 @@ impl VoidBuilder { })?; if child == Pid::from_raw(0) { + // ignore SIGHUP + // safety: safe as ignores the return result of the previous handler + unsafe { signal(Signal::SIGHUP, SigHandler::SigIgn) }.map_err(|e| Error::Nix { + msg: "signal", + src: e, + })?; + let result = { self.void_files()?; self.void_mount_namespace()?;