Print this page
OS-4408 /native/usr/bin/ps should work in a lx branded zone
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

*** 25,35 **** * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* ! * Copyright (c) 2012, Joyent, Inc. All rights reserved. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ --- 25,35 ---- * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* ! * Copyright 2015 Joyent, Inc. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */
*** 284,294 **** static int nzoneid = 0; static int kbytes_per_page; static int pidwidth; ! static char *procdir = "/proc"; /* standard /proc directory */ static struct ughead euid_tbl; /* table to store selected euid's */ static struct ughead ruid_tbl; /* table to store selected real uid's */ static struct ughead egid_tbl; /* table to store selected egid's */ static struct ughead rgid_tbl; /* table to store selected real gid's */ --- 284,294 ---- static int nzoneid = 0; static int kbytes_per_page; static int pidwidth; ! static char procdir[MAXPATHLEN]; /* standard /proc directory */ static struct ughead euid_tbl; /* table to store selected euid's */ static struct ughead ruid_tbl; /* table to store selected real uid's */ static struct ughead egid_tbl; /* table to store selected egid's */ static struct ughead rgid_tbl; /* table to store selected real gid's */
*** 337,348 **** --- 337,356 ---- int main(int argc, char **argv) { const char *me; + const char *zroot = zone_get_nroot(); /* + * If this is a branded zone, the native procfs may mounted in a + * non-standard location. Apply such a path prefix if it exists. + */ + (void) snprintf(procdir, sizeof (procdir), "%s/proc", zroot != NULL ? + zroot : ""); + + /* * The original two ps'es are linked in a single binary; * their main()s are renamed to stdmain for /usr/bin/ps and * ucbmain for /usr/ucb/ps. * We try to figure out which instance of ps the user wants to run. * Traditionally, the UCB variant doesn't require the flag argument