[PATCH 0/5] Fix AT_EMPTY_PATH handling
Johannes Schindelin
Johannes.Schindelin@gmx.de
Wed Jul 26 09:10:48 GMT 2023
Hi Corinna,
I had a look over the patches and they all make sense. I also tested the
code to make sure that the `tar xf` regression I needed to be fixed is
also addressed by this patch series.
As I don't really know the customs of the Cygwin project, please feel free
to add any Reviewed-by:, Acked-by: or whatever footers (or, if none of
those are appropriate, I am of course totally okay with no footer at all).
Thank you so much for fixing this!
Johannes
On Mon, 24 Jul 2023, Corinna Vinschen wrote:
> Johannes? Ping?
>
> On Jul 12 14:07, Corinna Vinschen wrote:
> > From: Corinna Vinschen <corinna@vinschen.de>
> >
> > The GLIBC extension AT_EMPTY_PATH allows the functions fchownat
> > and fstatat to operate on dirfd alone, if the given pathname is an
> > empty string. This also allows to operate on any file type, not
> > only directories.
> >
> > Commit fa84aa4dd2fb4 broke this. It only allows dirfd to be a
> > directory in calls to these two functions.
> >
> > Fix that by handling AT_EMPTY_PATH right in gen_full_path_at.
> > A valid dirfd and an empty pathname is now a valid combination
> > and, noticably, this returns a valid path in path_ret. That
> > in turn allows to remove the additional path generation code
> > from the callers.
> >
> > Fixes: fa84aa4dd2fb ("Cygwin: fix errno values set by readlinkat")
> > Reported-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> > Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
> >
> > Corinna Vinschen (5):
> > Cygwin: gen_full_path_at: drop never reached code
> > Define _AT_NULL_PATHNAME_ALLOWED
> > Cygwin: use new _AT_NULL_PATHNAME_ALLOWED flag
> > Cygwin: Fix and streamline AT_EMPTY_PATH handling
> > Cygwin: add AT_EMPTY_PATH fix to release message
> >
> > newlib/libc/include/sys/_default_fcntl.h | 11 +++--
> > winsup/cygwin/release/3.4.8 | 4 ++
> > winsup/cygwin/syscalls.cc | 61 ++++++------------------
> > 3 files changed, 25 insertions(+), 51 deletions(-)
> >
> > --
> > 2.40.1
>
More information about the Cygwin-patches
mailing list