The branch, v3-6-test has been updated
       via  99d2cb2 Fix bug #9588 - ACLs are not inherited to directories for 
DFS shares.
      from  6603013 Fix bug #9587 - archive flag is always set on directories.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 99d2cb211f04e907bf2ed19656843026207ae0e3
Author: Jeremy Allison <[email protected]>
Date:   Fri Jan 25 10:21:48 2013 -0800

    Fix bug #9588 - ACLs are not inherited to directories for DFS shares.
    
    We can return with NT_STATUS_OK in an error code path. This
    has a really strange effect in that it prevents the ACL editor
    in Windows XP from recursively changing ACE entries on sub-directories
    after a change in a DFS-root share (we end up returning a path
    that looks like: \\IPV4\share1\xptest/testdir with a mixture
    of Windows and POSIX pathname separators).
    
    Signed-off-by: Jeremy Allison <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/msdfs.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index f0f5d06..1235f0f 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -974,6 +974,19 @@ NTSTATUS get_referred_path(TALLOC_CTX *ctx,
        if (!NT_STATUS_EQUAL(status, NT_STATUS_PATH_NOT_COVERED)) {
                DEBUG(3,("get_referred_path: No valid referrals for path %s\n",
                        dfs_path));
+               if (NT_STATUS_IS_OK(status)) {
+                       /*
+                        * We are in an error path here (we
+                        * know it's not a DFS path), but
+                        * dfs_path_lookup() can return
+                        * NT_STATUS_OK. Ensure we always
+                        * return a valid error code.
+                        *
+                        * #9588 - ACLs are not inherited to directories
+                        *         for DFS shares.
+                        */
+                       status = NT_STATUS_NOT_FOUND;
+               }
                goto err_exit;
        }
 


-- 
Samba Shared Repository

Reply via email to