Re: [PATCH v2 2/3] Cygwin: path_conv::check: handle error from fhandler_process::exists
On Sep 8 15:05, Ken Brown via Cygwin-patches wrote: > On 9/8/2020 3:02 PM, Ken Brown via Cygwin-patches wrote: > > fhandler_process::exists is called when we are checking a path > > starting with "/proc//fd". If it returns virt_none and sets an > > errno, there is no need for further checking. Just set 'error' and > > return. > > --- > > winsup/cygwin/path.cc | 9 + > > 1 file changed, 9 insertions(+) > > > > diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc > > index 95faf8ca7..1d0c38a20 100644 > > --- a/winsup/cygwin/path.cc > > +++ b/winsup/cygwin/path.cc > > @@ -809,6 +809,15 @@ path_conv::check (const char *src, unsigned opt, > > delete fh; > > goto retry_fs_via_processfd; > > } > > + else if (file_type == virt_none && dev == FH_PROCESSFD) > > + { > > + error = get_errno (); > > + if (error) > > + { > > + delete fh; > > + return; > > + } > > + } > > delete fh; > > } > > switch (file_type) > > > > The subject should say "2/2", not "2/3". I have a local third patch > documenting the bug fix, which I didn't bother to send. ACk to both patches, 2 and 3 ;) Corinna
Re: [PATCH v2 2/3] Cygwin: path_conv::check: handle error from fhandler_process::exists
On 9/8/2020 3:02 PM, Ken Brown via Cygwin-patches wrote: fhandler_process::exists is called when we are checking a path starting with "/proc//fd". If it returns virt_none and sets an errno, there is no need for further checking. Just set 'error' and return. --- winsup/cygwin/path.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 95faf8ca7..1d0c38a20 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -809,6 +809,15 @@ path_conv::check (const char *src, unsigned opt, delete fh; goto retry_fs_via_processfd; } + else if (file_type == virt_none && dev == FH_PROCESSFD) + { + error = get_errno (); + if (error) + { + delete fh; + return; + } + } delete fh; } switch (file_type) The subject should say "2/2", not "2/3". I have a local third patch documenting the bug fix, which I didn't bother to send. Ken
[PATCH v2 2/3] Cygwin: path_conv::check: handle error from fhandler_process::exists
fhandler_process::exists is called when we are checking a path starting with "/proc//fd". If it returns virt_none and sets an errno, there is no need for further checking. Just set 'error' and return. --- winsup/cygwin/path.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 95faf8ca7..1d0c38a20 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -809,6 +809,15 @@ path_conv::check (const char *src, unsigned opt, delete fh; goto retry_fs_via_processfd; } + else if (file_type == virt_none && dev == FH_PROCESSFD) + { + error = get_errno (); + if (error) + { + delete fh; + return; + } + } delete fh; } switch (file_type) -- 2.28.0