diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/ps/ps.c | 6 | ||||
-rw-r--r-- | usr/src/cmd/ps/ucbps.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/usr/src/cmd/ps/ps.c b/usr/src/cmd/ps/ps.c index 757785882b..e607dd5644 100644 --- a/usr/src/cmd/ps/ps.c +++ b/usr/src/cmd/ps/ps.c @@ -1228,10 +1228,14 @@ static char * gettty(psinfo_t *psinfo) { extern char *_ttyname_dev(dev_t, char *, size_t); + static zoneid_t zid = -1; char devname[TTYNAME_MAX]; char *retval; - if (psinfo->pr_ttydev == PRNODEV) + if (zid == -1) + zid = getzoneid(); + + if (psinfo->pr_ttydev == PRNODEV || psinfo->pr_zoneid != zid) return ("?"); if ((retval = devlookup(psinfo->pr_ttydev)) != NULL) diff --git a/usr/src/cmd/ps/ucbps.c b/usr/src/cmd/ps/ucbps.c index 4731f260e9..60235e2ae9 100644 --- a/usr/src/cmd/ps/ucbps.c +++ b/usr/src/cmd/ps/ucbps.c @@ -65,6 +65,7 @@ #include <stdarg.h> #include <sys/proc.h> #include <priv_utils.h> +#include <zone.h> #define NTTYS 2 /* max ttys that can be specified with the -t option */ /* only one tty can be specified with SunOS ps */ @@ -803,10 +804,14 @@ static char * gettty(psinfo_t *psinfo) { extern char *_ttyname_dev(dev_t, char *, size_t); + static zoneid_t zid = -1; char devname[TTYNAME_MAX]; char *retval; - if (psinfo->pr_ttydev == PRNODEV) + if (zid == -1) + zid = getzoneid(); + + if (psinfo->pr_ttydev == PRNODEV || psinfo->pr_zoneid != zid) return ("?"); if ((retval = devlookup(psinfo->pr_ttydev)) != NULL) |