From 0fa0eaa3837551bb04fd850d78633cc08a3dbdcc Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Mon, 5 Jul 2004 20:33:17 +0000 Subject: r1342: When fixing _lsa_lookupsids in samba3 I wanted to find out the number of SIDs w2k3 can handle in a single request. With the samba3 client rpc libs I can do about 21000 SIDs in a single request. test_many_LookupSIDs with 10000 SIDs fails on the subsequent request with a NET_WRITE_FAULT. Maybe the Samba4 DCE people want to take a look at this -- I don't see the problem. Bug fix: SID components should be treated as unsigned when parsing Volker (This used to be commit 8c997a2ad2e89a640f854b556ef76a3d52c15963) --- source4/libcli/util/dom_sid.c | 2 +- source4/torture/rpc/lsa.c | 54 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) (limited to 'source4') diff --git a/source4/libcli/util/dom_sid.c b/source4/libcli/util/dom_sid.c index 9b8b45e302..0ca4cd731f 100644 --- a/source4/libcli/util/dom_sid.c +++ b/source4/libcli/util/dom_sid.c @@ -79,7 +79,7 @@ struct dom_sid *dom_sid_parse_talloc(TALLOC_CTX *mem_ctx, const char *sidstr) return NULL; } sidstr++; - ret->sub_auths[i] = strtol(sidstr, &p, 10); + ret->sub_auths[i] = strtoul(sidstr, &p, 10); if (p == sidstr) { return NULL; } diff --git a/source4/torture/rpc/lsa.c b/source4/torture/rpc/lsa.c index e3c603da17..44e1564992 100644 --- a/source4/torture/rpc/lsa.c +++ b/source4/torture/rpc/lsa.c @@ -181,6 +181,56 @@ static BOOL test_LookupSids(struct dcerpc_pipe *p, return True; } +static BOOL test_many_LookupSids(struct dcerpc_pipe *p, + TALLOC_CTX *mem_ctx, + struct policy_handle *handle) +{ + struct lsa_LookupSids r; + struct lsa_TransNameArray names; + uint32_t count; + NTSTATUS status; + struct lsa_SidArray sids; + int i; + + printf("\nTesting LookupSids with lots of SIDs\n"); + + names.count = 0; + names.names = NULL; + + sids.num_sids = 10000; + + sids.sids = talloc_array_p(mem_ctx, struct lsa_SidPtr, sids.num_sids); + + for (i=0; i