diff options
author | Peter Wemm <peter@FreeBSD.org> | 1998-05-31 18:28:45 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 1998-05-31 18:28:45 +0000 |
commit | f82a64e18de9782389ca9b3deb995e1fc3d87d68 (patch) | |
tree | a9d5f5b7480894104e0650cd6e4adf5de2824824 /sys/nfsclient/nfs_vnops.c | |
parent | 124765333ee4470f4be21dc04150b04d886077d3 (diff) | |
download | src-f82a64e18de9782389ca9b3deb995e1fc3d87d68.tar.gz src-f82a64e18de9782389ca9b3deb995e1fc3d87d68.zip |
Don't let the user try and unlink() a directory on a NFS server.
Obtained from: NetBSD
Notes
Notes:
svn path=/head/; revision=36524
Diffstat (limited to 'sys/nfsclient/nfs_vnops.c')
-rw-r--r-- | sys/nfsclient/nfs_vnops.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c index ec621a39c054..c7edc3cb5bb3 100644 --- a/sys/nfsclient/nfs_vnops.c +++ b/sys/nfsclient/nfs_vnops.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs_vnops.c 8.16 (Berkeley) 5/27/95 - * $Id: nfs_vnops.c,v 1.95 1998/05/31 18:25:32 peter Exp $ + * $Id: nfs_vnops.c,v 1.96 1998/05/31 18:27:07 peter Exp $ */ @@ -1450,7 +1450,9 @@ nfs_remove(ap) if (vp->v_usecount < 1) panic("nfs_remove: bad v_usecount"); #endif - if (vp->v_usecount == 1 || (np->n_sillyrename && + if (vp->v_type == VDIR) + error = EPERM; + else if (vp->v_usecount == 1 || (np->n_sillyrename && VOP_GETATTR(vp, &vattr, cnp->cn_cred, cnp->cn_proc) == 0 && vattr.va_nlink > 1)) { /* |