diff options
author | Daniel Hofstetter <daniel.hofstetter@42dh.com> | 2023-12-19 09:32:32 +0100 |
---|---|---|
committer | Daniel Hofstetter <daniel.hofstetter@42dh.com> | 2023-12-19 10:02:34 +0100 |
commit | a5606613bde1b0391b78b27205a4353b9a06c53e (patch) | |
tree | 711b4a7e3039d6e8c39e631a8118fefa79a445e4 | |
parent | 52af36d80bbeb2445a739c622362399cce8849ca (diff) |
ls: ignore invalid block size from env vars
-rw-r--r-- | src/uu/ls/src/ls.rs | 11 | ||||
-rw-r--r-- | tests/by-util/test_ls.rs | 8 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs index 8d1ecdbc6..8dbd95136 100644 --- a/src/uu/ls/src/ls.rs +++ b/src/uu/ls/src/ls.rs @@ -840,9 +840,14 @@ impl Config { match parse_size_u64(&raw_block_size.to_string_lossy()) { Ok(size) => Some(size), Err(_) => { - return Err(Box::new(LsError::BlockSizeParseError( - opt_block_size.unwrap().clone(), - ))); + // only fail if invalid block size was specified with --block-size, + // ignore invalid block size from env vars + if let Some(invalid_block_size) = opt_block_size { + return Err(Box::new(LsError::BlockSizeParseError( + invalid_block_size.clone(), + ))); + } + None } } } else if env_var_posixly_correct.is_some() { diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs index e503807d6..de62c659c 100644 --- a/tests/by-util/test_ls.rs +++ b/tests/by-util/test_ls.rs @@ -3874,6 +3874,14 @@ fn test_ls_invalid_block_size() { .stderr_is("ls: invalid --block-size argument 'invalid'\n"); } +// TODO ensure the correct block size is used when using -l because +// the output of "ls -l" and "BLOCK_SIZE=invalid ls -l" is different +#[test] +fn test_ls_invalid_block_size_in_env_var() { + new_ucmd!().env("LS_BLOCK_SIZE", "invalid").succeeds(); + new_ucmd!().env("BLOCK_SIZE", "invalid").succeeds(); +} + #[cfg(all(unix, feature = "dd"))] #[test] fn test_ls_block_size_override() { |