http = "0.2.0"
tokio = { version = "1.4.0", features = ["full"] }
futures-util = "0.3.1"
+libc = "0.2.100"
base64 = "0.12.0"
procspawn = "0.8"
rand = "0.8"
strum = "0.18.0"
strum_macros = "0.18.0"
-nix = "0.23.0"
# See discussion in https://github.com/coreos/rpm-ostree/pull/2569#issuecomment-780569188
rpmostree-client = { git = "https://github.com/coreos/rpm-ostree", tag = "v2021.3" }
return Ok(());
}
let metadata = Path::new("/run/ostree").metadata()?;
- assert_eq!(metadata.permissions().mode() & !nix::libc::S_IFMT, 0o755);
+ assert_eq!(metadata.permissions().mode() & !libc::S_IFMT, 0o755);
Ok(())
}
/// Find ELF files in the srcdir, write new copies to dest (only percentage)
pub(crate) fn mutate_executables_to(src: &Dir, dest: &Dir, percentage: u32) -> Result<u32> {
- use nix::sys::stat::Mode as NixMode;
assert!(percentage > 0 && percentage <= 100);
let mut mutated = 0;
for entry in src.entries()? {
continue;
}
let meta = entry.metadata()?;
- let mode = NixMode::from_bits_truncate(meta.mode());
+ let mode = meta.mode();
// Must be executable
- if !mode.intersects(NixMode::S_IXUSR | NixMode::S_IXGRP | NixMode::S_IXOTH) {
+ if mode & (libc::S_IXUSR | libc::S_IXGRP | libc::S_IXOTH) == 0 {
continue;
}
// Not suid
- if mode.intersects(NixMode::S_ISUID | NixMode::S_ISGID) {
+ if mode & (libc::S_ISUID | libc::S_ISGID) == 0 {
continue;
}
// Greater than 1k in size