diff options
author | jamie <jamie@FreeBSD.org> | 2009-10-01 13:11:45 +0000 |
---|---|---|
committer | jamie <jamie@FreeBSD.org> | 2009-10-01 13:11:45 +0000 |
commit | bee4d5ff2bcbe7fc7560193231b8503d327629c1 (patch) | |
tree | e059222d504826987ca9fbec58a7a87b7dede22b | |
parent | 05c6929c66e6fa7d7d8229d117ccc2cda3df4027 (diff) | |
download | FreeBSD-src-bee4d5ff2bcbe7fc7560193231b8503d327629c1.zip FreeBSD-src-bee4d5ff2bcbe7fc7560193231b8503d327629c1.tar.gz |
MFC r197581, r197583, r197584:
Set the prison in NFS anon and GSS SVC creds.
Reviewed by: marcel
Approved by: re (kib)
-rw-r--r-- | sys/kern/vfs_export.c | 5 | ||||
-rw-r--r-- | sys/rpc/rpcsec_gss/svc_rpcsec_gss.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index d898c08..4185211 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/dirent.h> #include <sys/domain.h> +#include <sys/jail.h> #include <sys/kernel.h> #include <sys/lock.h> #include <sys/malloc.h> @@ -122,6 +123,8 @@ vfs_hang_addrlist(struct mount *mp, struct netexport *nep, np->netc_anon->cr_uid = argp->ex_anon.cr_uid; crsetgroups(np->netc_anon, argp->ex_anon.cr_ngroups, argp->ex_anon.cr_groups); + np->netc_anon->cr_prison = &prison0; + prison_hold(np->netc_anon->cr_prison); np->netc_numsecflavors = argp->ex_numsecflavors; bcopy(argp->ex_secflavors, np->netc_secflavors, sizeof(np->netc_secflavors)); @@ -206,6 +209,8 @@ vfs_hang_addrlist(struct mount *mp, struct netexport *nep, np->netc_anon->cr_uid = argp->ex_anon.cr_uid; crsetgroups(np->netc_anon, argp->ex_anon.cr_ngroups, np->netc_anon->cr_groups); + np->netc_anon->cr_prison = &prison0; + prison_hold(np->netc_anon->cr_prison); np->netc_numsecflavors = argp->ex_numsecflavors; bcopy(argp->ex_secflavors, np->netc_secflavors, sizeof(np->netc_secflavors)); diff --git a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c index 2e7f3c8..b6e328e 100644 --- a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c +++ b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c @@ -449,6 +449,8 @@ rpc_gss_svc_getcred(struct svc_req *req, struct ucred **crp, int *flavorp) cr->cr_uid = cr->cr_ruid = cr->cr_svuid = uc->uid; cr->cr_rgid = cr->cr_svgid = uc->gid; crsetgroups(cr, uc->gidlen, uc->gidlist); + cr->cr_prison = &prison0; + prison_hold(cr->cr_prison); *crp = crhold(cr); return (TRUE); |