summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorbp <bp@FreeBSD.org>2002-04-13 15:33:26 +0000
committerbp <bp@FreeBSD.org>2002-04-13 15:33:26 +0000
commit8ebc4f9dd60cb3c9f1c698bc40f2b80f699fbb32 (patch)
tree3d566cfed2212e8150b1c72a0c2afa8c038b5d4a /sys/fs
parentd375e1c241ca6182cef3581f870099a015162a43 (diff)
downloadFreeBSD-src-8ebc4f9dd60cb3c9f1c698bc40f2b80f699fbb32.zip
FreeBSD-src-8ebc4f9dd60cb3c9f1c698bc40f2b80f699fbb32.tar.gz
Check write permissions before creating anything.
PR: kern/27883 MFC after: 1 week
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/smbfs/smbfs_vnops.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/fs/smbfs/smbfs_vnops.c b/sys/fs/smbfs/smbfs_vnops.c
index 0a7f5b2..b471486 100644
--- a/sys/fs/smbfs/smbfs_vnops.c
+++ b/sys/fs/smbfs/smbfs_vnops.c
@@ -1243,6 +1243,9 @@ smbfs_lookup(ap)
* Handle RENAME or CREATE case...
*/
if ((nameiop == CREATE || nameiop == RENAME) && wantparent && islastcn) {
+ error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred, td);
+ if (error)
+ return error;
cnp->cn_flags |= SAVENAME;
if (!lockparent) {
VOP_UNLOCK(dvp, 0, td);
OpenPOWER on IntegriCloud