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
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit f593835e54648621a46600bde7866e629718ebf4 Author: Ralph Boehme <s...@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 <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Sun Oct 12 00:22:19 CEST 2014 on sn-devel-104 commit 8686da231d434bb35333654277a029271e147257 Author: Volker Lendecke <v...@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--) { ldb_next_del_trans(data->partitions[i]->module); } With unsigned int i this will spin and del_trans somewhere far off :-) Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@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; break; +#ifdef HAVE_ACL_EVERYONE + case ACL_EVERYONE: + DEBUG(1, ("ACL tag type ACL_EVERYONE. FreeBSD with ZFS? Use 'vfs objects = zfsacl'\n")); + return false; +#endif default: 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") default_static_modules.extend(TO_LIST('vfs_posixacl')) + conf.CHECK_VARIABLE('ACL_EVERYONE', headers='sys/acl.h') elif conf.CHECK_FUNCS_IN(['facl'], 'sec'): Logs.info('Using solaris or UnixWare ACLs') conf.DEFINE('HAVE_SOLARIS_UNIXWARE_ACLS',1) 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