diff options
Diffstat (limited to 'source3')
| -rw-r--r-- | source3/lib/netapi/user.c | 32 | 
1 files changed, 20 insertions, 12 deletions
diff --git a/source3/lib/netapi/user.c b/source3/lib/netapi/user.c index 4e31175ebc..8ce97bedcc 100644 --- a/source3/lib/netapi/user.c +++ b/source3/lib/netapi/user.c @@ -744,6 +744,24 @@ static uint32_t samr_acb_flags_to_netapi_flags(uint32_t acb)  /****************************************************************  ****************************************************************/ +static NTSTATUS info21_to_USER_INFO_10(TALLOC_CTX *mem_ctx, +				       const struct samr_UserInfo21 *i21, +				       struct USER_INFO_10 *i) +{ +	ZERO_STRUCTP(i); + +	i->usri10_name		= talloc_strdup(mem_ctx, i21->account_name.string); +	NT_STATUS_HAVE_NO_MEMORY(i->usri10_name); +	i->usri10_comment	= talloc_strdup(mem_ctx, i21->description.string); +	i->usri10_full_name	= talloc_strdup(mem_ctx, i21->full_name.string); +	i->usri10_usr_comment	= talloc_strdup(mem_ctx, i21->comment.string); + +	return NT_STATUS_OK; +} + +/**************************************************************** +****************************************************************/ +  static NTSTATUS libnetapi_samr_lookup_user_map_USER_INFO(TALLOC_CTX *mem_ctx,  							 struct rpc_pipe_client *pipe_cli,  							 struct dom_sid *domain_sid, @@ -807,18 +825,8 @@ static NTSTATUS libnetapi_samr_lookup_user_map_USER_INFO(TALLOC_CTX *mem_ctx,  	switch (level) {  		case 10: -			info10.usri10_name = talloc_strdup(mem_ctx, -				info21->account_name.string); -			NT_STATUS_HAVE_NO_MEMORY(info10.usri10_name); - -			info10.usri10_comment = talloc_strdup(mem_ctx, -				info21->description.string); - -			info10.usri10_full_name = talloc_strdup(mem_ctx, -				info21->full_name.string); - -			info10.usri10_usr_comment = talloc_strdup(mem_ctx, -				info21->comment.string); +			status = info21_to_USER_INFO_10(mem_ctx, info21, &info10); +			NT_STATUS_NOT_OK_RETURN(status);  			ADD_TO_ARRAY(mem_ctx, struct USER_INFO_10, info10,  				     (struct USER_INFO_10 **)buffer, num_entries);  | 
