fix: don't try to convert C command returns to u8

Fixes Rust panics if some C command (like fsck) returns a value bigger
than 255. The process exit code will be mangled but what can we do, it's
less confusing than a panic (that unfortunately doesn't print the return
value).

Signed-off-by: Thomas Mühlbacher <tmuehlbacher@posteo.net>
This commit is contained in:
Thomas Mühlbacher 2024-07-30 23:21:13 +02:00
parent 57cd58db1e
commit b4db95b16e

View File

@ -9,6 +9,7 @@ use std::{
};
use bch_bindgen::c;
use log::debug;
#[derive(Debug)]
pub struct ErrnoError(pub errno::Errno);
@ -110,6 +111,11 @@ fn main() -> ExitCode {
"list" => commands::list(args[1..].to_vec()).report(),
"mount" => commands::mount(args, symlink_cmd).report(),
"subvolume" => commands::subvolume(args[1..].to_vec()).report(),
_ => ExitCode::from(u8::try_from(handle_c_command(args, symlink_cmd)).unwrap()),
_ => {
let r = handle_c_command(args, symlink_cmd);
debug!("return code from C command: {r}");
ExitCode::from(r as u8)
}
}
}