From 1003c82d23be6e6db28e163dc18245a2373768c5 Mon Sep 17 00:00:00 2001 From: emma Date: Sat, 10 Aug 2024 19:16:26 -0600 Subject: [PATCH] swab(1): uses pledge(2) --- src/swab.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/swab.rs b/src/swab.rs index 671f485..27ce9a5 100644 --- a/src/swab.rs +++ b/src/swab.rs @@ -32,6 +32,10 @@ use getopt::GetOpt; use sysexits::{ EX_IOERR, EX_OK, EX_OSERR, EX_USAGE }; use strerror::StrError; +#[cfg(target_os="openbsd")] extern crate openbsd; +#[cfg(target_os="openbsd")] use openbsd::{ Promises, pledge }; + + fn oserr(argv0: &str, e: Error) -> ExitCode { eprintln!("{}: {}", argv0, e.strerror()); ExitCode::from(EX_OSERR as u8) @@ -49,6 +53,14 @@ fn usage(s: &str) -> ExitCode { fn main() -> ExitCode { let argv = args().collect::>(); + + if cfg!(target_os="openbsd") { + let promises = Promises::new("stdio"); + if let Err(e) = pledge(Some(promises), None) { + return oserr(&argv[0], e); + } + } + let mut buf: Vec = Vec::new(); // holds the sequence getting swabbed let mut input = stdin(); let mut output = stdout().lock();