[newlib-cygwin] Cygwin: /proc: don't exit prematurely from /proc/PID/status

Corinna Vinschen corinna@sourceware.org
Fri Feb 1 12:18:00 GMT 2019


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=210bd56aa26d8d6f88e6c4566981cdb7835b80b9

commit 210bd56aa26d8d6f88e6c4566981cdb7835b80b9
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Fri Feb 1 13:18:15 2019 +0100

    Cygwin: /proc: don't exit prematurely from /proc/PID/status
    
    If a process is just exiting, requesting memory info may fail
    with STATUS_PROCESS_IS_TERMINATING.  Right now the code just bails
    out if fetching mem info fails.  However, the rest of the info is
    still valuable for procps, so just carry on.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/fhandler_process.cc | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc
index 24ef7d0..29b8c59 100644
--- a/winsup/cygwin/fhandler_process.cc
+++ b/winsup/cygwin/fhandler_process.cc
@@ -1212,9 +1212,8 @@ format_process_status (void *data, char *&destbuf)
       state_str = "stopped";
       break;
     }
-  if (!get_mem_values (p->dwProcessId, vmsize, vmrss, vmtext, vmdata,
-		       vmlib, vmshare))
-    return 0;
+  get_mem_values (p->dwProcessId, vmsize, vmrss, vmtext, vmdata,
+		  vmlib, vmshare);
   /* The real uid value for *this* process is stored at cygheap->user.real_uid
      but we can't get at the real uid value for any other process, so
      just fake it as p->uid.  Similar for p->gid. */



More information about the Cygwin-cvs mailing list