From 02f00e2c6bd4f5c732bce2ff2b2a9b52c76385d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Habasi=C5=84ski?= <49205083+haciek@users.noreply.github.com> Date: Sat, 25 Mar 2023 16:44:14 +0100 Subject: [PATCH 1/6] du: fix --threshold err msg --- src/uu/du/src/du.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/uu/du/src/du.rs b/src/uu/du/src/du.rs index c35bbf119..b0778cbec 100644 --- a/src/uu/du/src/du.rs +++ b/src/uu/du/src/du.rs @@ -913,6 +913,9 @@ impl FromStr for Threshold { let size = parse_size(&s[offset..])?; if s.starts_with('-') { + if size == 0 { + return Err(ParseSizeError::ParseFailure(s.to_string())); + } Ok(Self::Upper(size)) } else { Ok(Self::Lower(size)) From e5a4c393af979d335940e1fbb12882ab4ac18d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Habasi=C5=84ski?= Date: Sun, 26 Mar 2023 15:08:02 +0200 Subject: [PATCH 2/6] du: threshold fix comment --- src/uu/du/src/du.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/uu/du/src/du.rs b/src/uu/du/src/du.rs index b0778cbec..c06205974 100644 --- a/src/uu/du/src/du.rs +++ b/src/uu/du/src/du.rs @@ -913,6 +913,8 @@ impl FromStr for Threshold { let size = parse_size(&s[offset..])?; if s.starts_with('-') { + // Threshold of '-0' excludes everything besides 0 sized entries + // GNU's du threats '-0' as an invalid argument if size == 0 { return Err(ParseSizeError::ParseFailure(s.to_string())); } From 892f1d910a9c292cd23c90c54ff1652716c0b9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Habasi=C5=84ski?= Date: Sun, 26 Mar 2023 15:08:56 +0200 Subject: [PATCH 3/6] test: du invalid threshold --- tests/by-util/test_du.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/by-util/test_du.rs b/tests/by-util/test_du.rs index 5d0c23f78..081a6016f 100644 --- a/tests/by-util/test_du.rs +++ b/tests/by-util/test_du.rs @@ -546,6 +546,17 @@ fn test_du_threshold() { .stdout_contains("deeper_dir"); } +#[test] +fn test_du_invalid_threshold() { + let ts = TestScenario::new(util_name!()); + + let threshold = "-0"; + + ts.ucmd() + .arg(format!("--threshold={threshold}")) + .fails(); +} + #[test] fn test_du_apparent_size() { let ts = TestScenario::new(util_name!()); From ef9b974c417d7d86ddbb3286fcc2e837ab08a063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Habasi=C5=84ski?= <49205083+haciek@users.noreply.github.com> Date: Sun, 26 Mar 2023 13:15:48 +0200 Subject: [PATCH 4/6] du: comment alignment fix --- src/uu/du/src/du.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/uu/du/src/du.rs b/src/uu/du/src/du.rs index c06205974..aba06b138 100644 --- a/src/uu/du/src/du.rs +++ b/src/uu/du/src/du.rs @@ -912,9 +912,9 @@ impl FromStr for Threshold { let size = parse_size(&s[offset..])?; - if s.starts_with('-') { - // Threshold of '-0' excludes everything besides 0 sized entries - // GNU's du threats '-0' as an invalid argument + if s.starts_with('-') { + // Threshold of '-0' excludes everything besides 0 sized entries + // GNU's du threats '-0' as an invalid argument if size == 0 { return Err(ParseSizeError::ParseFailure(s.to_string())); } From d277603bf1e5b7d1f2595e4dce95cd2d936a1ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Habasi=C5=84ski?= Date: Sun, 26 Mar 2023 23:38:31 +0200 Subject: [PATCH 5/6] du: fmt fix --- src/uu/du/src/du.rs | 4 ++-- tests/by-util/test_du.rs | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/uu/du/src/du.rs b/src/uu/du/src/du.rs index aba06b138..5e4feee8b 100644 --- a/src/uu/du/src/du.rs +++ b/src/uu/du/src/du.rs @@ -912,9 +912,9 @@ impl FromStr for Threshold { let size = parse_size(&s[offset..])?; - if s.starts_with('-') { + if s.starts_with('-') { // Threshold of '-0' excludes everything besides 0 sized entries - // GNU's du threats '-0' as an invalid argument + // GNU's du threats '-0' as an invalid argument if size == 0 { return Err(ParseSizeError::ParseFailure(s.to_string())); } diff --git a/tests/by-util/test_du.rs b/tests/by-util/test_du.rs index 081a6016f..d69eaaf99 100644 --- a/tests/by-util/test_du.rs +++ b/tests/by-util/test_du.rs @@ -552,9 +552,7 @@ fn test_du_invalid_threshold() { let threshold = "-0"; - ts.ucmd() - .arg(format!("--threshold={threshold}")) - .fails(); + ts.ucmd().arg(format!("--threshold={threshold}")).fails(); } #[test] From 4695c2a20431a7fc52a9692288ed18d158d9c15c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 26 Mar 2023 21:51:04 +0200 Subject: [PATCH 6/6] Fix typo --- src/uu/du/src/du.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uu/du/src/du.rs b/src/uu/du/src/du.rs index 5e4feee8b..cab9da227 100644 --- a/src/uu/du/src/du.rs +++ b/src/uu/du/src/du.rs @@ -914,7 +914,7 @@ impl FromStr for Threshold { if s.starts_with('-') { // Threshold of '-0' excludes everything besides 0 sized entries - // GNU's du threats '-0' as an invalid argument + // GNU's du treats '-0' as an invalid argument if size == 0 { return Err(ParseSizeError::ParseFailure(s.to_string())); }