[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