Print this page
OS-3280 need a way to specify the root of a native system in the lx brand
OS-3279 lx brand should allow delegated datasets
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

*** 35,55 **** * University Acknowledgment- Portions of this document are derived from * software developed by the University of California, Berkeley, and its * contributors. */ - #pragma ident "%Z%%M% %I% %E% SMI" - /*LINTLIBRARY*/ #include <stdio.h> #include <sys/types.h> #include <fcntl.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include "curses_inc.h" #define TERMPATH "/usr/share/lib/terminfo/" #define TERMPATHLEN 512 --- 35,54 ---- * University Acknowledgment- Portions of this document are derived from * software developed by the University of California, Berkeley, and its * contributors. */ /*LINTLIBRARY*/ #include <stdio.h> #include <sys/types.h> #include <fcntl.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> + #include <zone.h> #include "curses_inc.h" #define TERMPATH "/usr/share/lib/terminfo/" #define TERMPATHLEN 512
*** 270,282 **** if ((tfd < 0) && (errno == EACCES)) goto cant_read; } if (tfd < 0) { /* /usr/share/lib/terminfo/?/$TERM */ if (snprintf(fname, sizeof (fname), ! "%s/%c/%s", TERMPATH, *term, term) >= sizeof (fname)) { term_errno = TERMINFO_TOO_LONG; goto out_err; } tfd = open(fname, 0); --- 269,283 ---- if ((tfd < 0) && (errno == EACCES)) goto cant_read; } if (tfd < 0) { + const char *zroot = zone_get_nroot(); /* /usr/share/lib/terminfo/?/$TERM */ if (snprintf(fname, sizeof (fname), ! "%s/%s/%c/%s", zroot == NULL ? "" : zroot, TERMPATH, ! *term, term) >= sizeof (fname)) { term_errno = TERMINFO_TOO_LONG; goto out_err; } tfd = open(fname, 0);