diff --git a/src/agent/rustjail/src/mount.rs b/src/agent/rustjail/src/mount.rs index 1ce746d72d..c8237ad8ed 100644 --- a/src/agent/rustjail/src/mount.rs +++ b/src/agent/rustjail/src/mount.rs @@ -483,6 +483,14 @@ fn parse_mount_table() -> Result> { Ok(infos) } +#[inline(always)] +fn chroot(path: &P) -> Result<(), nix::Error> { + #[cfg(not(test))] + return unistd::chroot(path); + #[cfg(test)] + return Ok(()); +} + pub fn ms_move_root(rootfs: &str) -> Result { unistd::chdir(rootfs)?; let mount_infos = parse_mount_table()?; @@ -544,7 +552,7 @@ pub fn ms_move_root(rootfs: &str) -> Result { MsFlags::MS_MOVE, None::<&str>, )?; - unistd::chroot(".")?; + chroot(".")?; unistd::chdir("/")?; Ok(true)