1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

r16678: Fix bug #3898 reported by jason@ncac.gwu.edu.

Jeremy.
This commit is contained in:
Jeremy Allison 2006-06-29 17:03:19 +00:00 committed by Gerald (Jerry) Carter
parent 1a80266d77
commit 5c5ea3152f
3 changed files with 14 additions and 6 deletions

View File

@ -294,7 +294,7 @@ NTSTATUS msrpc_sid_to_name(struct winbindd_domain *domain,
{
char **domains;
char **names;
uint32 *types;
enum SID_NAME_USE *types;
NTSTATUS result;
struct rpc_pipe_client *cli;
POLICY_HND lsa_policy;

View File

@ -357,7 +357,7 @@ static BOOL winbind_lookup_rids(TALLOC_CTX *mem_ctx,
const DOM_SID *domain_sid,
int num_rids, uint32 *rids,
const char **domain_name,
const char **names, uint32 *types)
const char **names, enum SID_NAME_USE *types)
{
/* Unless the winbind interface is upgraded, fall back to ask for
* individual sids. I imagine introducing a lookuprids operation that

View File

@ -1619,12 +1619,14 @@ NTSTATUS _samr_lookup_rids(pipes_struct *p, SAMR_Q_LOOKUP_RIDS *q_u, SAMR_R_LOOK
{
const char **names;
enum SID_NAME_USE *attrs = NULL;
uint32 *wire_attrs = NULL;
UNIHDR *hdr_name = NULL;
UNISTR2 *uni_name = NULL;
DOM_SID pol_sid;
int num_rids = q_u->num_rids1;
uint32 acc_granted;
int i;
r_u->status = NT_STATUS_OK;
DEBUG(5,("_samr_lookup_rids: %d\n", __LINE__));
@ -1640,9 +1642,10 @@ NTSTATUS _samr_lookup_rids(pipes_struct *p, SAMR_Q_LOOKUP_RIDS *q_u, SAMR_R_LOOK
}
names = TALLOC_ZERO_ARRAY(p->mem_ctx, const char *, num_rids);
attrs = TALLOC_ZERO_ARRAY(p->mem_ctx, uint32, num_rids);
attrs = TALLOC_ZERO_ARRAY(p->mem_ctx, enum SID_NAME_USE, num_rids);
wire_attrs = TALLOC_ZERO_ARRAY(p->mem_ctx, uint32, num_rids);
if ((num_rids != 0) && ((names == NULL) || (attrs == NULL)))
if ((num_rids != 0) && ((names == NULL) || (attrs == NULL) || wire_attrs))
return NT_STATUS_NO_MEMORY;
become_root(); /* lookup_sid can require root privs */
@ -1658,7 +1661,12 @@ NTSTATUS _samr_lookup_rids(pipes_struct *p, SAMR_Q_LOOKUP_RIDS *q_u, SAMR_R_LOOK
&hdr_name, &uni_name))
return NT_STATUS_NO_MEMORY;
init_samr_r_lookup_rids(r_u, num_rids, hdr_name, uni_name, attrs);
/* Convert from enum SID_NAME_USE to uint32 for wire format. */
for (i = 0; i < num_rids; i++) {
wire_attrs[i] = (uint32)attrs[i];
}
init_samr_r_lookup_rids(r_u, num_rids, hdr_name, uni_name, wire_attrs);
DEBUG(5,("_samr_lookup_rids: %d\n", __LINE__));