Print this page
OS-5221 nfs mount should work without /etc/nfssec.conf inside LX zoneroot
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

*** 43,52 **** --- 43,53 ---- #include <string.h> #include <ctype.h> #include <stdlib.h> #include <syslog.h> #include <synch.h> + #include <zone.h> #include <rpc/rpc.h> #include <nfs/nfs_sec.h> #include <rpc/rpcsec_gss.h> #ifdef WNFS_SEC_NEGO #include "webnfs.h"
*** 705,720 **** get_seconfig(int whichway, char *name, int num, rpc_gss_service_t service, seconfig_t *entryp) { char line[BUFSIZ]; /* holds each line of NFSSEC_CONF */ FILE *fp; /* file stream for NFSSEC_CONF */ if ((whichway == GETBYNAME) && (name == NULL)) return (SC_NOTFOUND); (void) mutex_lock(&matching_lock); ! if ((fp = fopen(NFSSEC_CONF, "r")) == NULL) { (void) mutex_unlock(&matching_lock); return (SC_OPENFAIL); } while (fgets(line, BUFSIZ, fp)) { --- 706,726 ---- get_seconfig(int whichway, char *name, int num, rpc_gss_service_t service, seconfig_t *entryp) { char line[BUFSIZ]; /* holds each line of NFSSEC_CONF */ FILE *fp; /* file stream for NFSSEC_CONF */ + char nfssec_conf[MAXPATHLEN]; + const char *zroot = zone_get_nroot(); if ((whichway == GETBYNAME) && (name == NULL)) return (SC_NOTFOUND); + (void) snprintf(nfssec_conf, sizeof (nfssec_conf), "%s%s", zroot != NULL ? + zroot : "", NFSSEC_CONF); + (void) mutex_lock(&matching_lock); ! if ((fp = fopen(nfssec_conf, "r")) == NULL) { (void) mutex_unlock(&matching_lock); return (SC_OPENFAIL); } while (fgets(line, BUFSIZ, fp)) {