From d4449888ab712e6d5543addc474c196040c62ff8 Mon Sep 17 00:00:00 2001 From: Ibrahim Burak Yorulmaz Date: Sun, 14 Jun 2026 20:21:48 +0200 Subject: [PATCH 1/2] kill: Continue processing invalid UTF-8 arguments to match GNU behaviour --- src/uu/kill/src/kill.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index 4e04b5397e1..ee8ceb7d127 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -43,7 +43,7 @@ pub enum Mode { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let mut args = args.collect_ignore(); + let mut args = args.collect_lossy(); let obs_signal = handle_obsolete(&mut args); let matches = uucore::clap_localization::handle_clap_result(uu_app(), args)?; From 1e33f1a713385ced1355ca9158791b109ffbbaa3 Mon Sep 17 00:00:00 2001 From: Ibrahim Burak Yorulmaz Date: Sun, 14 Jun 2026 20:22:26 +0200 Subject: [PATCH 2/2] tests/kill: Test supplying invalid UTF-8 argument to kill --- tests/by-util/test_kill.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/by-util/test_kill.rs b/tests/by-util/test_kill.rs index 8fa8a2778b4..c016bd4e5ba 100644 --- a/tests/by-util/test_kill.rs +++ b/tests/by-util/test_kill.rs @@ -2,7 +2,7 @@ // // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. -// spell-checker:ignore IAMNOTASIGNAL RTMAX RTMIN SIGRTMAX +// spell-checker:ignore IAMNOTASIGNAL RTMAX RTMIN SIGRTMAX FFFD use regex::Regex; use std::os::unix::process::ExitStatusExt; use std::process::{Child, Command}; @@ -539,3 +539,15 @@ fn test_kill_realtime_signal() { .succeeds(); assert_eq!(target.wait_for_signal(), Some(libc::SIGRTMIN())); } + +#[test] +fn test_kill_invalid_utf8() { + let arg = uucore::os_str_from_bytes(b"\xFFa\xFF") + .expect("Only unix platforms can test non-unicode names"); + + new_ucmd!() + .arg("-l") + .arg(&arg) + .fails() + .stderr_contains("'\u{FFFD}a\u{FFFD}': invalid signal"); +}