aboutsummaryrefslogtreecommitdiff
path: root/sys/nfsserver
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2009-05-09 18:09:17 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2009-05-09 18:09:17 +0000
commit5679fe195787816af8648fbe2c21cf47b4f0272f (patch)
treee0a6bea48a27765461073d412daf8d760867e537 /sys/nfsserver
parentec54a3a337eb89b4023d9d915a97a527e65fa633 (diff)
downloadsrc-5679fe195787816af8648fbe2c21cf47b4f0272f.tar.gz
src-5679fe195787816af8648fbe2c21cf47b4f0272f.zip
Do not embed struct ucred into larger netcred parent structures.
Credential might need to hang around longer than its parent and be used outside of mnt_explock scope controlling netcred lifetime. Use separate reference-counted ucred allocated separately instead. While there, extend mnt_explock coverage in vfs_stdexpcheck and clean-up some unused declarations in new NFS code. Reported by: John Hickey PR: kern/133439 Reviewed by: dfr, kib
Notes
Notes: svn path=/head/; revision=191940
Diffstat (limited to 'sys/nfsserver')
-rw-r--r--sys/nfsserver/nfs_srvsubs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c
index d1544639a14d..3f546644e0cc 100644
--- a/sys/nfsserver/nfs_srvsubs.c
+++ b/sys/nfsserver/nfs_srvsubs.c
@@ -1193,6 +1193,9 @@ nfsrv_fhtovp(fhandle_t *fhp, int lockflag, struct vnode **vpp, int *vfslockedp,
if (!lockflag)
VOP_UNLOCK(*vpp, 0);
out:
+ if (credanon != NULL)
+ crfree(credanon);
+
if (error) {
VFS_UNLOCK_GIANT(vfslocked);
} else