1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-29 21:47:30 +03:00

Fixed enumeration of a large (<1500) users from a Samba PDC to a W2k

member server. Firstly, use the same max enumeration size (0x400) as W2K
uses, otherwise W2K won't ask for any more. Secondly, if a enumeration
request with a non-zero offset comes in on a handle that hasn't started
an enumeration, don't bitch about it (return NT_STATUS_UNSUCCESSFUL),
just load the db on that handle and return at that offset.
Jeremy.
(This used to be commit 0b7da4a50ea02e28ab23e71de1e5f8b9194a9af3)
This commit is contained in:
Jeremy Allison 2001-12-31 22:37:51 +00:00
parent 927e860477
commit 120607cab1
2 changed files with 1 additions and 7 deletions

View File

@ -646,7 +646,7 @@ typedef struct r_samr_open_domain_info
} SAMR_R_OPEN_DOMAIN;
#define MAX_SAM_ENTRIES 50
#define MAX_SAM_ENTRIES 0x400
typedef struct samr_entry_info
{

View File

@ -901,9 +901,6 @@ NTSTATUS _samr_query_dispinfo(pipes_struct *p, SAMR_Q_QUERY_DISPINFO *q_u, SAMR_
case 0x1:
case 0x2:
case 0x4:
if (enum_context!=0 && info->disp_info.user_dbloaded==False)
return NT_STATUS_UNSUCCESSFUL;
become_root();
r_u->status=load_sampwd_entries(info, acb_mask);
unbecome_root();
@ -914,9 +911,6 @@ NTSTATUS _samr_query_dispinfo(pipes_struct *p, SAMR_Q_QUERY_DISPINFO *q_u, SAMR_
break;
case 0x3:
case 0x5:
if (enum_context!=0 && info->disp_info.group_dbloaded==False)
return NT_STATUS_UNSUCCESSFUL;
r_u->status = load_group_domain_entries(info, &info->sid);
if (NT_STATUS_IS_ERR(r_u->status))
return r_u->status;