Module Name: src Committed By: njoly Date: Tue Jan 31 18:56:07 UTC 2012
Modified Files: src/tests/fs/puffs/h_dtfs: dtfs_vnops.c Log Message: Check directory write access for DELETE operation. And while here, small indentation adjust. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/tests/fs/puffs/h_dtfs/dtfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/fs/puffs/h_dtfs/dtfs_vnops.c diff -u src/tests/fs/puffs/h_dtfs/dtfs_vnops.c:1.8 src/tests/fs/puffs/h_dtfs/dtfs_vnops.c:1.9 --- src/tests/fs/puffs/h_dtfs/dtfs_vnops.c:1.8 Tue Mar 1 15:19:49 2011 +++ src/tests/fs/puffs/h_dtfs/dtfs_vnops.c Tue Jan 31 18:56:07 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: dtfs_vnops.c,v 1.8 2011/03/01 15:19:49 pooka Exp $ */ +/* $NetBSD: dtfs_vnops.c,v 1.9 2012/01/31 18:56:07 njoly Exp $ */ /* * Copyright (c) 2006 Antti Kantee. All Rights Reserved. @@ -63,6 +63,14 @@ dtfs_node_lookup(struct puffs_usermount dfd = dtfs_dirgetbyname(df, pcn->pcn_name, pcn->pcn_namelen); if (dfd) { + if ((pcn->pcn_flags & NAMEI_ISLASTCN) && + (pcn->pcn_nameiop == NAMEI_DELETE)) { + rv = puffs_access(VDIR, pn_dir->pn_va.va_mode, + pn_dir->pn_va.va_uid, pn_dir->pn_va.va_gid, + PUFFS_VWRITE, pcn->pcn_cred); + if (rv) + return rv; + } puffs_newinfo_setcookie(pni, dfd->dfd_node); puffs_newinfo_setvtype(pni, dfd->dfd_node->pn_va.va_type); puffs_newinfo_setsize(pni, dfd->dfd_node->pn_va.va_size); @@ -76,7 +84,7 @@ dtfs_node_lookup(struct puffs_usermount if ((pcn->pcn_flags & NAMEI_ISLASTCN) && (pcn->pcn_nameiop == NAMEI_CREATE || - pcn->pcn_nameiop == NAMEI_RENAME)) { + pcn->pcn_nameiop == NAMEI_RENAME)) { rv = puffs_access(VDIR, pn_dir->pn_va.va_mode, pn_dir->pn_va.va_uid, pn_dir->pn_va.va_gid, PUFFS_VWRITE, pcn->pcn_cred);