mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-30 12:37:49 +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;
|
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
|
// components: length
|
||||||
for p in path {
|
for p in path {
|
||||||
let component_len = p.len();
|
let component_len = p.len();
|
||||||
|
|
|
@ -19,8 +19,16 @@ fn test_default_mode() {
|
||||||
// accept non-portable chars
|
// accept non-portable chars
|
||||||
new_ucmd!().args(&["dir#/$file"]).succeeds().no_stdout();
|
new_ucmd!().args(&["dir#/$file"]).succeeds().no_stdout();
|
||||||
|
|
||||||
// accept empty path
|
// fail on empty path
|
||||||
new_ucmd!().args(&[""]).succeeds().no_stdout();
|
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
|
// fail on long path
|
||||||
new_ucmd!()
|
new_ucmd!()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue