* fhandler_proc.cc (fhandler_proc::get_proc_fhandler): Don't allow to
access process info by using the Windows PID. * fhandler_process.cc (fhandler_process::fstat): Ditto. (fhandler_process::fill_filebuf): Ditto.
This commit is contained in:
parent
3b7cd74bfd
commit
6e2c582323
|
@ -1,3 +1,10 @@
|
||||||
|
2011-08-11 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fhandler_proc.cc (fhandler_proc::get_proc_fhandler): Don't allow to
|
||||||
|
access process info by using the Windows PID.
|
||||||
|
* fhandler_process.cc (fhandler_process::fstat): Ditto.
|
||||||
|
(fhandler_process::fill_filebuf): Ditto.
|
||||||
|
|
||||||
2011-08-11 Corinna Vinschen <corinna@vinschen.de>
|
2011-08-11 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* (winpids::add): Make sure to store always a Windows PID in
|
* (winpids::add): Make sure to store always a Windows PID in
|
||||||
|
|
|
@ -128,7 +128,13 @@ fhandler_proc::get_proc_fhandler (const char *path)
|
||||||
if (entry)
|
if (entry)
|
||||||
return entry->fhandler;
|
return entry->fhandler;
|
||||||
|
|
||||||
if (pinfo (atoi (path)))
|
int pid = atoi (path);
|
||||||
|
pinfo p (pid);
|
||||||
|
/* If p->pid != pid, then pid is actually the Windows PID for an execed
|
||||||
|
Cygwin process, and the pinfo entry is the additional entry created
|
||||||
|
at exec time. We don't want to enable the user to access a process
|
||||||
|
entry by using the Win32 PID, though. */
|
||||||
|
if (p && p->pid == pid)
|
||||||
return FH_PROCESS;
|
return FH_PROCESS;
|
||||||
|
|
||||||
bool has_subdir = false;
|
bool has_subdir = false;
|
||||||
|
|
|
@ -143,8 +143,13 @@ fhandler_process::fstat (struct __stat64 *buf)
|
||||||
fhandler_base::fstat (buf);
|
fhandler_base::fstat (buf);
|
||||||
path += proc_len + 1;
|
path += proc_len + 1;
|
||||||
pid = atoi (path);
|
pid = atoi (path);
|
||||||
|
|
||||||
pinfo p (pid);
|
pinfo p (pid);
|
||||||
if (!p)
|
/* If p->pid != pid, then pid is actually the Windows PID for an execed
|
||||||
|
Cygwin process, and the pinfo entry is the additional entry created
|
||||||
|
at exec time. We don't want to enable the user to access a process
|
||||||
|
entry by using the Win32 PID, though. */
|
||||||
|
if (!p || p->pid != pid)
|
||||||
{
|
{
|
||||||
set_errno (ENOENT);
|
set_errno (ENOENT);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -320,8 +325,11 @@ fhandler_process::fill_filebuf ()
|
||||||
pid = atoi (path);
|
pid = atoi (path);
|
||||||
|
|
||||||
pinfo p (pid);
|
pinfo p (pid);
|
||||||
|
/* If p->pid != pid, then pid is actually the Windows PID for an execed
|
||||||
if (!p)
|
Cygwin process, and the pinfo entry is the additional entry created
|
||||||
|
at exec time. We don't want to enable the user to access a process
|
||||||
|
entry by using the Win32 PID, though. */
|
||||||
|
if (!p || p->pid != pid)
|
||||||
{
|
{
|
||||||
set_errno (ENOENT);
|
set_errno (ENOENT);
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue