diff options
author | Jim McDonough <jmcd@samba.org> | 2005-02-19 10:56:40 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:55:41 -0500 |
commit | 4e617c62c3998fb0a631b068ebdd159e6b6f286c (patch) | |
tree | ea3b3468fd901e514513bc76394cd9202d06ef02 /source3/rpc_server | |
parent | 80a514a6effd46d7efe1d7e86c4fcea23836ed7a (diff) | |
download | samba-4e617c62c3998fb0a631b068ebdd159e6b6f286c.tar.gz samba-4e617c62c3998fb0a631b068ebdd159e6b6f286c.tar.bz2 samba-4e617c62c3998fb0a631b068ebdd159e6b6f286c.zip |
r5458: Generate a sane response to exceeding lookupsids limit. Truncate list to zero
and return NT_STATUS_NONE_MAPPED. This does not crash windows and maintains
the benefit of not overallocating memory. The previous response of
truncating to the MAX limit was not useful because it crashed lsass.exe on
windows (bug opened with MS), and it was also misleading the client to
believe that a complete answer was received.
(This used to be commit c03a93957404663bbd026668fb95d6c253524fe9)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_lsa_nt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c index b4c8e033ff..225e5efd54 100644 --- a/source3/rpc_server/srv_lsa_nt.c +++ b/source3/rpc_server/srv_lsa_nt.c @@ -647,8 +647,9 @@ NTSTATUS _lsa_lookup_sids(pipes_struct *p, LSA_Q_LOOKUP_SIDS *q_u, LSA_R_LOOKUP_ uint32 mapped_count = 0; if (num_entries > MAX_LOOKUP_SIDS) { - num_entries = MAX_LOOKUP_SIDS; - DEBUG(5,("_lsa_lookup_sids: truncating SID lookup list to %d\n", num_entries)); + num_entries = 0; + DEBUG(5,("_lsa_lookup_sids: limit of %d exceeded, truncating SID lookup list to %d\n", MAX_LOOKUP_SIDS, num_entries)); + r_u->status = NT_STATUS_NONE_MAPPED; } ref = TALLOC_ZERO_P(p->mem_ctx, DOM_R_REF); |