Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2005-08-08 19:33:32 +0400
committerCorinna Vinschen <corinna@vinschen.de>2005-08-08 19:33:32 +0400
commitaf925fe4fa59ce9eabcc8d18f0bd001b28592ec3 (patch)
tree663e515aa6a076ccbf44b99c7bdf0fa5a935ad7e /winsup/cygwin/fhandler_registry.cc
parent6e8cac26380d953765edf32a1f2865ebc342501e (diff)
* fhandler_process.cc (fhandler_process::open): Allow opening of
/proc/<pid>/fd for reading. * fhandler_registry.cc (fhandler_registry::open): Ditto for registry keys.
Diffstat (limited to 'winsup/cygwin/fhandler_registry.cc')
-rw-r--r--winsup/cygwin/fhandler_registry.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/winsup/cygwin/fhandler_registry.cc b/winsup/cygwin/fhandler_registry.cc
index 41ff072a2..07be1d0c7 100644
--- a/winsup/cygwin/fhandler_registry.cc
+++ b/winsup/cygwin/fhandler_registry.cc
@@ -484,12 +484,18 @@ fhandler_registry::open (int flags, mode_t mode)
goto out;
}
- handle = open_key (path, KEY_READ, true);
+ handle = open_key (path, KEY_READ, false);
if (handle == (HKEY) INVALID_HANDLE_VALUE)
{
- res = 0;
- goto out;
+ handle = open_key (path, KEY_READ, true);
+ if (handle == (HKEY) INVALID_HANDLE_VALUE)
+ {
+ res = 0;
+ goto out;
+ }
}
+ else
+ flags |= O_DIROPEN;
set_io_handle (handle);
@@ -498,7 +504,7 @@ fhandler_registry::open (int flags, mode_t mode)
else
value_name = cstrdup (file);
- if (!fill_filebuf ())
+ if (!(flags & O_DIROPEN) && !fill_filebuf ())
{
RegCloseKey (handle);
res = 0;