Spawn bwrap and mirror its exit status instead of exec'ing into it

This commit is contained in:
2026-10-31 01:55:36 +01:00
parent c17e8c7c5d
commit 1c2f51ed3b
8 changed files with 89 additions and 9 deletions
+6 -3
View File
@@ -11,12 +11,15 @@ mod sandbox;
mod sandbox_info;
mod seccomp;
mod session_key;
mod signals;
pub use errors::SandboxError;
pub use signals::exit_with_status;
use std::ffi::OsString;
use std::fs;
use std::path::PathBuf;
use std::process::ExitStatus;
use crate::sandbox::Bwrap;
@@ -90,15 +93,15 @@ fn resolve_run_user_from_proc() -> Option<String> {
None
}
pub fn run(config: SandboxConfig) -> Result<(), SandboxError> {
pub fn run(config: SandboxConfig) -> Result<ExitStatus, SandboxError> {
preflight::check(&config)?;
let bwrap = Bwrap::build(&config)?;
if config.dry_run {
println!("{}", bwrap.shell_quoted());
return Ok(());
return Ok(ExitStatus::default());
}
Err(SandboxError::Io(bwrap.exec()))
Ok(bwrap.run()?)
}