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);