--- sys/miscfs/procfs/procfs_status.c.orig Sat Oct 4 08:30:39 2003 +++ sys/miscfs/procfs/procfs_status.c Thu Nov 27 00:10:06 2003 @@ -105,18 +105,19 @@ if (sess->s_ttyvp) { snprintf(ps, sizeof(ps), "%sctty", sep); sep = ","; - } COUNTORCAT(s, l, ps, n); + } if (SESS_LEADER(p)) { snprintf(ps, sizeof(ps), "%ssldr", sep); sep = ","; - } COUNTORCAT(s, l, ps, n); + } - if (*sep != ',') + if (*sep != ',') { snprintf(ps, sizeof(ps), "noflags"); COUNTORCAT(s, l, ps, n); + } if (p->p_flag & P_INMEM) snprintf(ps, sizeof(ps), " %ld,%ld", @@ -136,10 +137,22 @@ cr = p->p_ucred; - snprintf(ps, sizeof(ps), " %u, %u", cr->cr_uid, cr->cr_gid); + /* EUID, EGID */ + snprintf(ps, sizeof(ps), " %u,%u", cr->cr_uid, cr->cr_gid); COUNTORCAT(s, l, ps, n); + + /* RUID, RGID */ + snprintf(ps, sizeof(ps), " %u,%u", p->p_cred->p_ruid, p->p_cred->p_rgid); + COUNTORCAT(s, l, ps, n); + + /* SVUID, SVGID */ + snprintf(ps, sizeof(ps), " %u,%u ", p->p_cred->p_svuid, p->p_cred->p_svgid); + COUNTORCAT(s, l, ps, n); + + sep = ""; for (i = 0; i < cr->cr_ngroups; i++) { - snprintf(ps, sizeof(ps), ",%u", cr->cr_groups[i]); + snprintf(ps, sizeof(ps), "%s%u", sep, cr->cr_groups[i]); + sep = ","; COUNTORCAT(s, l, ps, n); }