[PATCH v2 2/3] Cygwin: path_conv::check: handle error from fhandler_process::exists

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH v2 2/3] Cygwin: path_conv::check: handle error from fhandler_process::exists

cygwin-patches mailing list
fhandler_process::exists is called when we are checking a path
starting with "/proc/<pid>/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

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2 2/3] Cygwin: path_conv::check: handle error from fhandler_process::exists

cygwin-patches mailing list
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/<pid>/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
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2 2/3] Cygwin: path_conv::check: handle error from fhandler_process::exists

Corinna Vinschen-2
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/<pid>/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