mirror of
https://github.com/uutils/coreutils.git
synced 2026-06-10 15:48:22 -07:00
Merge pull request #10172 from oech3/hostid-full-panic
Avoid hostid > /dev/full panic
This commit is contained in:
+12
-15
@@ -7,6 +7,7 @@
|
||||
|
||||
use clap::Command;
|
||||
use libc::{c_long, gethostid};
|
||||
use std::io::{Write, stdout};
|
||||
use uucore::{error::UResult, format_usage};
|
||||
|
||||
use uucore::translate;
|
||||
@@ -14,20 +15,6 @@ use uucore::translate;
|
||||
#[uucore::main]
|
||||
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
||||
uucore::clap_localization::handle_clap_result(uu_app(), args)?;
|
||||
hostid();
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn uu_app() -> Command {
|
||||
Command::new(uucore::util_name())
|
||||
.version(uucore::crate_version!())
|
||||
.help_template(uucore::localized_help_template(uucore::util_name()))
|
||||
.about(translate!("hostid-about"))
|
||||
.override_usage(format_usage(&translate!("hostid-usage")))
|
||||
.infer_long_args(true)
|
||||
}
|
||||
|
||||
fn hostid() {
|
||||
/*
|
||||
* POSIX says gethostid returns a "32-bit identifier" but is silent
|
||||
* whether it's sign-extended. Turn off any sign-extension. This
|
||||
@@ -43,5 +30,15 @@ fn hostid() {
|
||||
let mask = 0xffff_ffff;
|
||||
|
||||
result &= mask;
|
||||
println!("{result:0>8x}");
|
||||
writeln!(stdout().lock(), "{result:0>8x}")?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn uu_app() -> Command {
|
||||
Command::new(uucore::util_name())
|
||||
.version(uucore::crate_version!())
|
||||
.help_template(uucore::localized_help_template(uucore::util_name()))
|
||||
.about(translate!("hostid-about"))
|
||||
.override_usage(format_usage(&translate!("hostid-usage")))
|
||||
.infer_long_args(true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user