[SCM] Samba Shared Repository - branch master updated
Matthias Dieter Wallnöfer
mdw at samba.org
Sat Dec 4 04:12:02 MST 2010
The branch, master has been updated
via 14d3027 s4:samr RPC server - dcesrv_samr_GetBootKeyInformation - return NOT_SUPPORTED
via b6750ee s4:dsdb/common/util_samr.c - "dsdb_enum_group_mem" - fix it up regarding non SAM members
via b604e94 s4:torture/rpc/samr.c - fix output message
from b8282a2 Fix bug #3185 - testparm exits 0 if it can read the config file regardless of errors
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 14d3027458dc3831330e316e9de1cc71b73c9c5b
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Dec 4 10:34:05 2010 +0100
s4:samr RPC server - dcesrv_samr_GetBootKeyInformation - return NOT_SUPPORTED
Windows Server 2008 does this
Autobuild-User: Matthias Dieter Wallnöfer <mdw at samba.org>
Autobuild-Date: Sat Dec 4 12:11:47 CET 2010 on sn-devel-104
commit b6750eee281427bf7c570b9b594f924583fa6bb5
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Dec 4 10:24:30 2010 +0100
s4:dsdb/common/util_samr.c - "dsdb_enum_group_mem" - fix it up regarding non SAM members
For example contacts.
commit b604e9425b3f1a1c4c9a627ac6f939837c9c0665
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Sat Dec 4 10:07:25 2010 +0100
s4:torture/rpc/samr.c - fix output message
-----------------------------------------------------------------------
Summary of changes:
source4/dsdb/common/util_samr.c | 23 ++++++++++++++++-------
source4/rpc_server/samr/dcesrv_samr.c | 3 ++-
source4/torture/rpc/samr.c | 2 +-
3 files changed, 19 insertions(+), 9 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/dsdb/common/util_samr.c b/source4/dsdb/common/util_samr.c
index 72d42cb..e6c7797 100644
--- a/source4/dsdb/common/util_samr.c
+++ b/source4/dsdb/common/util_samr.c
@@ -409,7 +409,7 @@ NTSTATUS dsdb_enum_group_mem(struct ldb_context *ldb,
unsigned int *pnum_members)
{
struct ldb_message *msg;
- unsigned int i;
+ unsigned int i, j;
int ret;
struct dom_sid *members;
struct ldb_message_element *member_el;
@@ -443,6 +443,7 @@ NTSTATUS dsdb_enum_group_mem(struct ldb_context *ldb,
return NT_STATUS_NO_MEMORY;
}
+ j = 0;
for (i=0; i <member_el->num_values; i++) {
struct ldb_dn *member_dn = ldb_dn_from_ldb_val(tmp_ctx, ldb,
&member_el->values[i]);
@@ -455,17 +456,25 @@ NTSTATUS dsdb_enum_group_mem(struct ldb_context *ldb,
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
- status = dsdb_get_extended_dn_sid(member_dn, &members[i], "SID");
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(1, ("Could find SID attribute on extended DN %s\n",
- ldb_dn_get_extended_linearized(tmp_ctx, dn, 1)));
+ status = dsdb_get_extended_dn_sid(member_dn, &members[j],
+ "SID");
+ 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 contact */
+ continue;
+ } else if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(1, ("When parsing DN %s we failed to parse our SID component, so we cannot fetch the membership: %s\n",
+ ldb_dn_get_extended_linearized(tmp_ctx, dn, 1),
+ nt_errstr(status)));
talloc_free(tmp_ctx);
- return NT_STATUS_INTERNAL_DB_CORRUPTION;
+ return status;
}
+
+ ++j;
}
*members_out = talloc_steal(mem_ctx, members);
- *pnum_members = member_el->num_values;
+ *pnum_members = j;
talloc_free(tmp_ctx);
return NT_STATUS_OK;
}
diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c
index 391bc7f..399b146 100644
--- a/source4/rpc_server/samr/dcesrv_samr.c
+++ b/source4/rpc_server/samr/dcesrv_samr.c
@@ -4172,7 +4172,8 @@ static NTSTATUS dcesrv_samr_SetBootKeyInformation(struct dcesrv_call_state *dce_
static NTSTATUS dcesrv_samr_GetBootKeyInformation(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct samr_GetBootKeyInformation *r)
{
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
+ /* Windows Server 2008 returns this */
+ return NT_STATUS_NOT_SUPPORTED;
}
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index 8ee1198..8d10671 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -5630,7 +5630,7 @@ static bool test_QueryGroupMember(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_samr_QueryGroupMember_r(b, tctx, &r),
"QueryGroupMember failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
- torture_warning(tctx, "QueryGroupInfo failed - %s\n", nt_errstr(r.out.result));
+ torture_warning(tctx, "QueryGroupMember failed - %s\n", nt_errstr(r.out.result));
ret = false;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list