diff options
author | bp <bp@FreeBSD.org> | 2002-04-13 15:33:26 +0000 |
---|---|---|
committer | bp <bp@FreeBSD.org> | 2002-04-13 15:33:26 +0000 |
commit | 8ebc4f9dd60cb3c9f1c698bc40f2b80f699fbb32 (patch) | |
tree | 3d566cfed2212e8150b1c72a0c2afa8c038b5d4a /sys/fs | |
parent | d375e1c241ca6182cef3581f870099a015162a43 (diff) | |
download | FreeBSD-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.c | 3 |
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); |