summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorJim McDonough <jmcd@samba.org>2005-02-19 10:56:40 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:55:41 -0500
commit4e617c62c3998fb0a631b068ebdd159e6b6f286c (patch)
treeea3b3468fd901e514513bc76394cd9202d06ef02 /source3/rpc_server
parent80a514a6effd46d7efe1d7e86c4fcea23836ed7a (diff)
downloadsamba-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.c5
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);