* fhandler_process.cc (fhandler_process::open): Allow opening of

/proc/<pid>/fd for reading.
	* fhandler_registry.cc (fhandler_registry::open): Ditto for registry
	keys.
This commit is contained in:
Corinna Vinschen 2005-08-08 15:33:32 +00:00
parent 6e8cac2638
commit af925fe4fa
3 changed files with 19 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2005-08-08 Corinna Vinschen <corinna@vinschen.de>
* fhandler_process.cc (fhandler_process::open): Allow opening of
/proc/<pid>/fd for reading.
* fhandler_registry.cc (fhandler_registry::open): Ditto for registry
keys.
2005-08-08 Christopher Faylor <cgf@timesys.com> 2005-08-08 Christopher Faylor <cgf@timesys.com>
* include/sys/cdefs.h (__CONCAT): Define. * include/sys/cdefs.h (__CONCAT): Define.

View File

@ -293,9 +293,8 @@ fhandler_process::open (int flags, mode_t mode)
} }
if (process_file_no == PROCESS_FD) if (process_file_no == PROCESS_FD)
{ {
set_errno (EISDIR); flags |= O_DIROPEN;
res = 0; goto success;
goto out;
} }
if (flags & O_WRONLY) if (flags & O_WRONLY)
{ {

View File

@ -484,12 +484,18 @@ fhandler_registry::open (int flags, mode_t mode)
goto out; goto out;
} }
handle = open_key (path, KEY_READ, true); handle = open_key (path, KEY_READ, false);
if (handle == (HKEY) INVALID_HANDLE_VALUE) if (handle == (HKEY) INVALID_HANDLE_VALUE)
{ {
res = 0; handle = open_key (path, KEY_READ, true);
goto out; if (handle == (HKEY) INVALID_HANDLE_VALUE)
{
res = 0;
goto out;
}
} }
else
flags |= O_DIROPEN;
set_io_handle (handle); set_io_handle (handle);
@ -498,7 +504,7 @@ fhandler_registry::open (int flags, mode_t mode)
else else
value_name = cstrdup (file); value_name = cstrdup (file);
if (!fill_filebuf ()) if (!(flags & O_DIROPEN) && !fill_filebuf ())
{ {
RegCloseKey (handle); RegCloseKey (handle);
res = 0; res = 0;