[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Sat Oct 11 16:23:02 MDT 2014

The branch, master has been updated
       via  f593835 vfs_posixacl: catch ACL_EVERYONE on FreeBSD
       via  8686da2 dsdb: Fix a crash in an error return
      from  6d2c8f5 smbd: Fix a use-after-free


- Log -----------------------------------------------------------------
commit f593835e54648621a46600bde7866e629718ebf4
Author: Ralph Boehme <slow at samba.org>
Date:   Fri Oct 10 13:53:56 2014 +0200

    vfs_posixacl: catch ACL_EVERYONE on FreeBSD
    Using POSIX ACL API on FreeBSD may return NFSv4 style tag type
    ACL_EVERYONE. Catch the error and issue a helpful log message telling
    users to enable zfsacl VFS module.
    Signed-off-by: Ralph Boehme <slow at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Sun Oct 12 00:22:19 CEST 2014 on sn-devel-104

commit 8686da231d434bb35333654277a029271e147257
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Oct 10 15:37:55 2014 +0200

    dsdb: Fix a crash in an error return
    In an error return we have
    /* Back it out, if it fails on one */
    for (i--; i >= 0; i--) {
    With unsigned int i this will spin and del_trans somewhere far off :-)
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>


Summary of changes:
 source3/modules/vfs_posixacl.c             |    5 +++++
 source3/wscript                            |    1 +
 source4/dsdb/samdb/ldb_modules/partition.c |    2 +-
 3 files changed, 7 insertions(+), 1 deletions(-)

Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_posixacl.c b/source3/modules/vfs_posixacl.c
index 6963aae..f009fcc 100644
--- a/source3/modules/vfs_posixacl.c
+++ b/source3/modules/vfs_posixacl.c
@@ -167,6 +167,11 @@ static bool smb_ace_to_internal(acl_entry_t posix_ace,
 	case ACL_MASK:
 		ace->a_type = SMB_ACL_MASK;
+		DEBUG(1, ("ACL tag type ACL_EVERYONE. FreeBSD with ZFS? Use 'vfs objects = zfsacl'\n"));
+		return false;
 		DEBUG(0, ("unknown tag type %d\n", (unsigned int)tag));
 		return False;
diff --git a/source3/wscript b/source3/wscript
index b285c5f..4f182bf 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -476,6 +476,7 @@ return acl_get_perm_np(permset_d, perm);
                         headers='sys/types.h sys/acl.h', link=True,
                         msg="Checking whether acl_get_perm_np() is available")
+                conf.CHECK_VARIABLE('ACL_EVERYONE', headers='sys/acl.h')
             elif conf.CHECK_FUNCS_IN(['facl'], 'sec'):
                 Logs.info('Using solaris or UnixWare ACLs')
diff --git a/source4/dsdb/samdb/ldb_modules/partition.c b/source4/dsdb/samdb/ldb_modules/partition.c
index f2624a2..b501ff1 100644
--- a/source4/dsdb/samdb/ldb_modules/partition.c
+++ b/source4/dsdb/samdb/ldb_modules/partition.c
@@ -805,7 +805,7 @@ static int partition_rename(struct ldb_module *module, struct ldb_request *req)
 /* start a transaction */
 static int partition_start_trans(struct ldb_module *module)
-	unsigned int i;
+	int i;
 	int ret;
 	struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
 							      struct partition_private_data);

Samba Shared Repository

More information about the samba-cvs mailing list