summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2021-02-10 10:37:13 +0100
committerCorinna Vinschen <corinna@vinschen.de>2021-02-10 10:42:38 +0100
commit5f0913df13f227aa8087ed39ae1ac5ddf98e5671 (patch)
treee9072556b5d204606fa5d1d0339c068cb6071e08
parentc875ed3744968b19f7dd8ed6335710be55617d36 (diff)
downloadcygnal-5f0913df13f227aa8087ed39ae1ac5ddf98e5671.tar.gz
cygnal-5f0913df13f227aa8087ed39ae1ac5ddf98e5671.tar.bz2
cygnal-5f0913df13f227aa8087ed39ae1ac5ddf98e5671.zip
Cygwin: drop path_conv::reset_conv_handle
path_conv::reset_conv_handle is only called after fhandler::copyto has been called. This duplicated the path_conv_handle if there was one, so just setting the conv handle to NULL potentially produces a handle leak. Replace reset_conv_handle calls with calls to close_conv_handle and drop the reset_conv_handle method. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/dtable.cc2
-rw-r--r--winsup/cygwin/fhandler_pipe.cc2
-rw-r--r--winsup/cygwin/path.h1
3 files changed, 2 insertions, 3 deletions
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index ad4b59211..84149bd3f 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -687,7 +687,7 @@ dtable::dup_worker (fhandler_base *oldfh, int flags)
if (!oldfh->archetype)
newfh->set_handle (NULL);
- newfh->pc.reset_conv_handle ();
+ newfh->pc.close_conv_handle ();
if (oldfh->dup (newfh, flags))
{
delete newfh;
diff --git a/winsup/cygwin/fhandler_pipe.cc b/winsup/cygwin/fhandler_pipe.cc
index edbaded68..830e8f823 100644
--- a/winsup/cygwin/fhandler_pipe.cc
+++ b/winsup/cygwin/fhandler_pipe.cc
@@ -98,7 +98,7 @@ fhandler_pipe::open (int flags, mode_t mode)
continue;
cfd->copyto (this);
set_handle (NULL);
- pc.reset_conv_handle ();
+ pc.close_conv_handle ();
if (!cfd->dup (this, flags))
return 1;
return 0;
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h
index 62bd5ddd5..33e7fdf6a 100644
--- a/winsup/cygwin/path.h
+++ b/winsup/cygwin/path.h
@@ -406,7 +406,6 @@ class path_conv
return conv_handle.get_finfo (h, fs.is_nfs ());
}
inline ino_t get_ino () const { return conv_handle.get_ino (fs.is_nfs ()); }
- void reset_conv_handle () { conv_handle.set (NULL); }
void close_conv_handle () { conv_handle.close (); }
ino_t get_ino_by_handle (HANDLE h);