1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 11:37:44 +00:00

Merge pull request #7206 from cakebaker/kill_no_lowercase_signal_names_with_hyphen

kill: don't allow lowercase signal names with '-'
This commit is contained in:
Sylvestre Ledru 2025-01-24 20:32:36 +01:00 committed by GitHub
commit 0fd9a293cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 4 deletions

View file

@ -141,6 +141,10 @@ fn handle_obsolete(args: &mut Vec<String>) -> Option<usize> {
// Old signal can only be in the first argument position // Old signal can only be in the first argument position
let slice = args[1].as_str(); let slice = args[1].as_str();
if let Some(signal) = slice.strip_prefix('-') { if let Some(signal) = slice.strip_prefix('-') {
// With '-', a signal name must start with an uppercase char
if signal.chars().next().is_some_and(|c| c.is_lowercase()) {
return None;
}
// Check if it is a valid signal // Check if it is a valid signal
let opt_signal = signal_by_name_or_value(signal); let opt_signal = signal_by_name_or_value(signal);
if opt_signal.is_some() { if opt_signal.is_some() {

View file

@ -198,12 +198,24 @@ fn test_kill_with_signal_number_old_form() {
#[test] #[test]
fn test_kill_with_signal_name_old_form() { fn test_kill_with_signal_name_old_form() {
let mut target = Target::new(); for arg in ["-Kill", "-KILL"] {
let mut target = Target::new();
new_ucmd!()
.arg(arg)
.arg(format!("{}", target.pid()))
.succeeds();
assert_eq!(target.wait_for_signal(), Some(libc::SIGKILL));
}
}
#[test]
fn test_kill_with_lower_case_signal_name_old_form() {
let target = Target::new();
new_ucmd!() new_ucmd!()
.arg("-KILL") .arg("-kill")
.arg(format!("{}", target.pid())) .arg(format!("{}", target.pid()))
.succeeds(); .fails()
assert_eq!(target.wait_for_signal(), Some(libc::SIGKILL)); .stderr_contains("unexpected argument");
} }
#[test] #[test]