mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-29 12:07:46 +00:00
Merge pull request #5423 from Luv-Ray/fix-pathchk-issue5314
`pathchk`: check empty path by default
This commit is contained in:
commit
a3c6d6d91e
2 changed files with 21 additions and 2 deletions
|
@ -193,6 +193,17 @@ fn check_default(path: &[String]) -> bool {
|
|||
);
|
||||
return false;
|
||||
}
|
||||
if total_len == 0 {
|
||||
// Check whether a file name component is in a directory that is not searchable,
|
||||
// or has some other serious problem. POSIX does not allow "" as a file name,
|
||||
// but some non-POSIX hosts do (as an alias for "."),
|
||||
// so allow "" if `symlink_metadata` (corresponds to `lstat`) does.
|
||||
if fs::symlink_metadata(&joined_path).is_err() {
|
||||
writeln!(std::io::stderr(), "pathchk: '': No such file or directory",);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// components: length
|
||||
for p in path {
|
||||
let component_len = p.len();
|
||||
|
|
|
@ -19,8 +19,16 @@ fn test_default_mode() {
|
|||
// accept non-portable chars
|
||||
new_ucmd!().args(&["dir#/$file"]).succeeds().no_stdout();
|
||||
|
||||
// accept empty path
|
||||
new_ucmd!().args(&[""]).succeeds().no_stdout();
|
||||
// fail on empty path
|
||||
new_ucmd!()
|
||||
.args(&[""])
|
||||
.fails()
|
||||
.stderr_only("pathchk: '': No such file or directory\n");
|
||||
|
||||
new_ucmd!().args(&["", ""]).fails().stderr_only(
|
||||
"pathchk: '': No such file or directory\n\
|
||||
pathchk: '': No such file or directory\n",
|
||||
);
|
||||
|
||||
// fail on long path
|
||||
new_ucmd!()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue