The branch, master has been updated via e09f057 s3-lib/sysacls: Do not include an embedded via fc4c06f s3-lib: Add const to sys_acl_to_text via 9ef47b8 s3-vfs: Show the invalid ACL when we say it is invalid for set via ad11b90 s3-lib: Fix indentation in sys_acl_to_text() from 9a01661 Revert "selftest: mark ^samba4.raw.context.session1 as flapping, the test was wrong"
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit e09f05731d734090a31b97082bcbb3933380bf76 Author: Andrew Bartlett <abart...@samba.org> Date: Tue May 8 23:39:35 2012 +1000 s3-lib/sysacls: Do not include an embedded \0 between ACL entries in sys_acl_to_text() This makes it possible to print the entire string again. Andrew Bartlett Autobuild-User: Andrew Bartlett <abart...@samba.org> Autobuild-Date: Wed May 9 06:07:06 CEST 2012 on sn-devel-104 commit fc4c06f284d88b6c1997768dd448e2dac80739cb Author: Andrew Bartlett <abart...@samba.org> Date: Tue May 8 14:11:27 2012 +1000 s3-lib: Add const to sys_acl_to_text commit 9ef47b8fe3a8e1d940946ae611b807fa2cbd5b70 Author: Andrew Bartlett <abart...@samba.org> Date: Tue May 8 14:02:27 2012 +1000 s3-vfs: Show the invalid ACL when we say it is invalid for set commit ad11b90eb6fa3c12b4aaa065e62122d6af78aff2 Author: Andrew Bartlett <abart...@samba.org> Date: Tue May 8 14:02:07 2012 +1000 s3-lib: Fix indentation in sys_acl_to_text() ----------------------------------------------------------------------- Summary of changes: source3/include/proto.h | 2 +- source3/lib/sysacls.c | 11 ++++++----- source3/modules/vfs_posixacl.c | 6 ++++-- 3 files changed, 11 insertions(+), 8 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/include/proto.h b/source3/include/proto.h index 686b230..d45ec88 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -270,7 +270,7 @@ void *sys_acl_get_qualifier(SMB_ACL_ENTRY_T entry_d); int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d); int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm); int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm); -char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p); +char *sys_acl_to_text(const struct smb_acl_t *acl_d, ssize_t *len_p); SMB_ACL_T sys_acl_init(int count); int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p); int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type); diff --git a/source3/lib/sysacls.c b/source3/lib/sysacls.c index fad717b..592aef6 100644 --- a/source3/lib/sysacls.c +++ b/source3/lib/sysacls.c @@ -148,7 +148,7 @@ int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm) return *permset_d & perm; } -char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p) +char *sys_acl_to_text(const struct smb_acl_t *acl_d, ssize_t *len_p) { int i; int len, maxlen; @@ -233,13 +233,14 @@ char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p) if ((len + nbytes) > maxlen) { maxlen += nbytes + 20 * (acl_d->count - i); if ((text = (char *)SMB_REALLOC(text, maxlen)) == NULL) { - errno = ENOMEM; + errno = ENOMEM; return NULL; + } } - } - slprintf(&text[len], nbytes-1, "%s:%s:%s\n", tag, id, perms); - len += nbytes - 1; + + slprintf(&text[len], nbytes, "%s:%s:%s\n", tag, id, perms); + len += (nbytes - 1); } if (len_p) diff --git a/source3/modules/vfs_posixacl.c b/source3/modules/vfs_posixacl.c index 4640991..d304f6f 100644 --- a/source3/modules/vfs_posixacl.c +++ b/source3/modules/vfs_posixacl.c @@ -347,8 +347,10 @@ static acl_t smb_acl_to_posix(const struct smb_acl_t *acl) } if (acl_valid(result) != 0) { - DEBUG(0, ("smb_acl_to_posix: ACL is invalid for set (%s)\n", - strerror(errno))); + char *acl_string = sys_acl_to_text(acl, NULL); + DEBUG(0, ("smb_acl_to_posix: ACL %s is invalid for set (%s)\n", + acl_string, strerror(errno))); + SAFE_FREE(acl_string); goto fail; } -- Samba Shared Repository