Author: tridge
Date: 2004-12-30 06:37:37 +0000 (Thu, 30 Dec 2004)
New Revision: 4410

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4410

Log:
pvfs_rename_one() should not check for create permissions, as the rename
is always in the same directory


Modified:
   branches/SAMBA_4_0/source/ntvfs/posix/pvfs_rename.c


Changeset:
Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_rename.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_rename.c 2004-12-30 06:02:54 UTC 
(rev 4409)
+++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_rename.c 2004-12-30 06:37:37 UTC 
(rev 4410)
@@ -141,21 +141,18 @@
        status = pvfs_resolve_partial(pvfs, mem_ctx, 
                                      dir_path, fname1, &name1);
        if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               return status;
+               goto failed;
        }
 
        /* make sure its matches the given attributes */
        status = pvfs_match_attrib(pvfs, name1, attrib, 0);
        if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               return status;
+               goto failed;
        }
 
        status = pvfs_can_rename(pvfs, name1);
        if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               return status;
+               goto failed;
        }
 
        /* get a pvfs_filename dest object */
@@ -164,15 +161,11 @@
        if (NT_STATUS_IS_OK(status)) {
                status = pvfs_can_delete(pvfs, req, name2);
                if (!NT_STATUS_IS_OK(status)) {
-                       talloc_free(mem_ctx);
-                       return status;
+                       goto failed;
                }
        }
 
-       status = pvfs_access_check_create(pvfs, req, name2);
-       if (!NT_STATUS_IS_OK(status)) {
-               return status;
-       }
+       status = NT_STATUS_OK;
 
        fname2 = talloc_asprintf(mem_ctx, "%s/%s", dir_path, fname2);
        if (fname2 == NULL) {
@@ -184,9 +177,9 @@
                return pvfs_map_errno(pvfs, errno);
        }
 
+failed:
        talloc_free(mem_ctx);
-
-       return NT_STATUS_OK;
+       return status;
 }
 
 

Reply via email to