[PATCH v4 0/4] Support opening a symlink with O_PATH | O_NOFOLLOW
Mon Jan 20 14:57:00 GMT 2020
On 1/20/2020 4:56 AM, Corinna Vinschen wrote:
> On Jan 17 16:10, Ken Brown wrote:
>> Currently, opening a symlink with O_NOFOLLOW fails with ELOOP.
>> Following Linux, the first patch in this series allows the call to
>> succeed if O_PATH is also specified.
>> According to the Linux man page for open(2), "the call returns a file
>> descriptor referring to the symbolic link. This file descriptor can
>> be used as the dirfd argument in calls to fchownat(2), fstatat(2),
>> linkat(2), and readlinkat(2) with an empty pathname to have the calls
>> operate on the symbolic link."
>> The second patch achieves this for readlinkat. The third patch does
>> this for fstatat and fchownat by adding support for the AT_EMPTY_PATH
>> flag. Nothing needs to be done for linkat, which already supports the
>> AT_EMPTY_PATH flag.
>> Ken Brown (4):
>> Cygwin: allow opening a symlink with O_PATH | O_NOFOLLOW
>> Cygwin: readlinkat: allow pathname to be empty
>> Cygwin: fstatat, fchownat: support the AT_EMPTY_PATH flag
>> Cygwin: document recent changes
>> winsup/cygwin/release/3.1.3 | 19 +++++++++--
>> winsup/cygwin/syscalls.cc | 68 ++++++++++++++++++++++++++++++++-----
>> winsup/doc/new-features.xml | 19 +++++++++++
>> 3 files changed, 94 insertions(+), 12 deletions(-)
> This looks good to me. Please push. I just wonder if this isn't
> new feature enough to bump the Cygwin version to 3.2...
Maybe. You're in a better position to judge this than I am. If you decide to
do it, I'll tweak the documentation accordingly.
More information about the Cygwin-patches