Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fchmodat/fstatat: fix regression with empty
pathname
In 4b82229 (Cygwin: fix errno values set by readlinkat, 2023-04-18) the code of `readlinkat()` was adjusted to align the `errno` with Linux' behavior. To accommodate for that, the `gen_full_path_at()` function was modified, and the caller was adjusted to expect either `ENOENT` or `ENOTDIR` in the case of an empty `pathname`, not just `ENOENT`. However, `readlinkat()` is not the only caller of that helper function. And while most other callers simply propagate the `errno` produced by `gen_full_path_at()`, two other callers also want to special-case empty `pathnames` much like `readlinkat()`: `fchmodat()` and `fstatat()`. Therefore, these two callers need to be changed to expect `ENOTDIR` in case of an empty `pathname`, too. I noticed this issue when one of my workflows failed consistently while trying to untar an archive containing a symbolic link and claiming this: Cannot change mode to rwxr-xr-x: Not a directory With this here fix, things start working as expected again. Fixes: 4b82229 (Cygwin: fix errno values set by readlinkat, 2023-04-18) Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
- Loading branch information