diff options
author | Jeremy Allison <jra@samba.org> | 2001-12-31 22:37:51 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-12-31 22:37:51 +0000 |
commit | 120607cab1ccd5e10a26a7ef367c53e766ba4293 (patch) | |
tree | a63b42d8c82bf9be97931591be55ae6f02f9ec13 | |
parent | 927e86047786cbdda2bded6d983d952202b08006 (diff) | |
download | samba-120607cab1ccd5e10a26a7ef367c53e766ba4293.tar.gz samba-120607cab1ccd5e10a26a7ef367c53e766ba4293.tar.bz2 samba-120607cab1ccd5e10a26a7ef367c53e766ba4293.zip |
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)
-rw-r--r-- | source3/include/rpc_samr.h | 2 | ||||
-rw-r--r-- | source3/rpc_server/srv_samr_nt.c | 6 |
2 files changed, 1 insertions, 7 deletions
diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h index c0b908b348..36c9f69821 100644 --- a/source3/include/rpc_samr.h +++ b/source3/include/rpc_samr.h @@ -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 { diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c index 6e25da1710..2c599c9d79 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -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; |