From 50674f2dc3ee6b192919936f4b037f9a1e68c2d3 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 29 May 2002 20:10:27 +0000 Subject: * ps.cc (main): Use uid or uid32 member of struct external_pinfo dependent of the value of the struct's version member. --- winsup/utils/ps.cc | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'winsup/utils/ps.cc') diff --git a/winsup/utils/ps.cc b/winsup/utils/ps.cc index ec52a8d31..6866ccb62 100644 --- a/winsup/utils/ps.cc +++ b/winsup/utils/ps.cc @@ -325,8 +325,14 @@ main (int argc, char *argv[]) (p = (external_pinfo *) cygwin_internal (query, pid | CW_NEXTPID)); pid = p->pid) { - if (!aflag && p->uid32 != (__uid32_t) uid) - continue; + if (!aflag) + if (p->version >= EXTERNAL_PINFO_VERSION_32_BIT) + { + if (p->uid32 != (__uid32_t) uid) + continue; + } + else if (p->uid != uid) + continue; char status = ' '; if (p->process_state & PID_STOPPED) status = 'S'; @@ -349,7 +355,8 @@ main (int argc, char *argv[]) } else if (query == CW_GETPINFO_FULL) { - HANDLE h = OpenProcess (PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, p->dwProcessId); + HANDLE h = OpenProcess (PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, + FALSE, p->dwProcessId); if (!h) continue; HMODULE hm[1000]; @@ -370,19 +377,25 @@ main (int argc, char *argv[]) { struct passwd *pw; - if ((pw = getpwuid (p->uid32))) + if ((pw = getpwuid (p->version >= EXTERNAL_PINFO_VERSION_32_BIT ? + p->uid32 : p->uid))) strcpy (uname, pw->pw_name); else - sprintf (uname, "%u", (unsigned) p->uid32); + sprintf (uname, "%u", (unsigned) + (p->version >= EXTERNAL_PINFO_VERSION_32_BIT ? + p->uid32 : p->uid)); } if (sflag) printf (dfmt, p->pid, ttynam (p->ctty), start_time (p), pname); else if (fflag) - printf (ffmt, uname, p->pid, p->ppid, ttynam (p->ctty), start_time (p), pname); + printf (ffmt, uname, p->pid, p->ppid, ttynam (p->ctty), start_time (p), + pname); else if (lflag) printf (lfmt, status, p->pid, p->ppid, p->pgid, - p->dwProcessId, ttynam (p->ctty), p->uid32, start_time (p), pname); + p->dwProcessId, ttynam (p->ctty), + p->version >= EXTERNAL_PINFO_VERSION_32_BIT ? p->uid32 : p->uid, + start_time (p), pname); } (void) cygwin_internal (CW_UNLOCK_PINFO); -- cgit v1.2.3