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

Reply via email to