The branch, master has been updated via e2a89d6 s4:auth/sam.c - when printing out a string buffer we don't strictly need the width via 4ae9aec s4:auth/sam.c - the check for the SAMDB needs to be on the top of the call via 5e1c9b5 s4:auth/sam.c - fix the free of memory contexts via 07e18e8 s4:auth/sam.c - specify the SID ignore case better from 6bfa21f wintest: autodetect if named supports tkey-gssapi-keytab
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit e2a89d6ba76d632fe3319aac4575cebe0c060d6b Author: Matthias Dieter Wallnöfer <m...@samba.org> Date: Fri Dec 3 09:33:57 2010 +0100 s4:auth/sam.c - when printing out a string buffer we don't strictly need the width The precision (maximum numbers of characters) should be enough. Autobuild-User: Matthias Dieter Wallnöfer <m...@samba.org> Autobuild-Date: Fri Dec 3 10:26:39 CET 2010 on sn-devel-104 commit 4ae9aec17cc75685381fff86e1b90f99b4ae51c8 Author: Matthias Dieter Wallnöfer <m...@samba.org> Date: Fri Dec 3 09:19:42 2010 +0100 s4:auth/sam.c - the check for the SAMDB needs to be on the top of the call Otherwise it's really useless. commit 5e1c9b562c4bf89d0d2e9a423a6fa0bf48b6da6b Author: Matthias Dieter Wallnöfer <m...@samba.org> Date: Fri Dec 3 09:18:23 2010 +0100 s4:auth/sam.c - fix the free of memory contexts "tmp_ctx" needs always to be freed ("res" is freed implicitly) commit 07e18e8f7c5687d00160a1760411099736444c7c Author: Matthias Dieter Wallnöfer <m...@samba.org> Date: Fri Dec 3 09:17:01 2010 +0100 s4:auth/sam.c - specify the SID ignore case better As per suggestion by metze. ----------------------------------------------------------------------- Summary of changes: source4/auth/sam.c | 23 ++++++++++++++--------- 1 files changed, 14 insertions(+), 9 deletions(-) Changeset truncated at 500 lines: diff --git a/source4/auth/sam.c b/source4/auth/sam.c index 6203b96..2b3ed91 100644 --- a/source4/auth/sam.c +++ b/source4/auth/sam.c @@ -314,29 +314,34 @@ NTSTATUS authsam_expand_nested_groups(struct ldb_context *sam_ctx, *num_res_sids = 0; } + if (!sam_ctx) { + DEBUG(0, ("No SAM available, cannot determine local groups\n")); + return NT_STATUS_INVALID_SYSTEM_SERVICE; + } + tmp_ctx = talloc_new(res_sids_ctx); dn = ldb_dn_from_ldb_val(tmp_ctx, sam_ctx, dn_val); if (dn == NULL) { talloc_free(tmp_ctx); - DEBUG(0, (__location__ ": we failed parsing DN %*.*s, so we cannot calculate the group token\n", - (int)dn_val->length, (int)dn_val->length, dn_val->data)); + DEBUG(0, (__location__ ": we failed parsing DN %.*s, so we cannot calculate the group token\n", + (int)dn_val->length, dn_val->data)); return NT_STATUS_INTERNAL_DB_CORRUPTION; } status = dsdb_get_extended_dn_sid(dn, &sid, "SID"); - if (!NT_STATUS_IS_OK(status)) { + if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_NOT_FOUND)) { /* If we fail finding a SID then this is no error since it could * be a non SAM object - e.g. a group with object class * "groupOfNames" */ talloc_free(tmp_ctx); return NT_STATUS_OK; - } - - if (!sam_ctx) { - DEBUG(0, ("No SAM available, cannot determine local groups\n")); + } else if (!NT_STATUS_IS_OK(status)) { + DEBUG(0, (__location__ ": when parsing DN %s we failed to parse our SID component, so we cannot calculate the group token: %s\n", + ldb_dn_get_extended_linearized(tmp_ctx, dn, 1), + nt_errstr(status))); talloc_free(tmp_ctx); - return NT_STATUS_INVALID_SYSTEM_SERVICE; + return status; } if (only_childs) { @@ -347,6 +352,7 @@ NTSTATUS authsam_expand_nested_groups(struct ldb_context *sam_ctx, already_there = sids_contains_sid((const struct dom_sid**) *res_sids, *num_res_sids, &sid); if (already_there) { + talloc_free(tmp_ctx); return NT_STATUS_OK; } @@ -390,7 +396,6 @@ NTSTATUS authsam_expand_nested_groups(struct ldb_context *sam_ctx, status = authsam_expand_nested_groups(sam_ctx, &el->values[i], false, filter, res_sids_ctx, res_sids, num_res_sids); if (!NT_STATUS_IS_OK(status)) { - talloc_free(res); talloc_free(tmp_ctx); return status; } -- Samba Shared Repository