[SCM] Samba Shared Repository - branch v3-2-test updated -
release-3-2-0pre2-3112-gdcc40a6
Günther Deschner
gd at samba.org
Thu Oct 23 11:07:00 GMT 2008
The branch, v3-2-test has been updated
via dcc40a6adec5d00c29a062164cbc68ff4a7779f8 (commit)
via 02bc790f209f56cc704566ded46973efc35f4a4f (commit)
via 0f6a80fb198f3cc4ffc875c77da3ff3d8b8c5ca3 (commit)
from 71de4d58bb2aea6a98e94055387ef6671aa64410 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test
- Log -----------------------------------------------------------------
commit dcc40a6adec5d00c29a062164cbc68ff4a7779f8
Author: Günther Deschner <gd at samba.org>
Date: Thu Oct 23 03:31:32 2008 +0200
s3-samr-server: unify callback convention: _samr_UserSetInfo.
Guenther
(cherry picked from commit aa301e82d0c44c6a733e8be2546d661ea56512ef)
commit 02bc790f209f56cc704566ded46973efc35f4a4f
Author: Günther Deschner <gd at samba.org>
Date: Thu Oct 23 03:30:58 2008 +0200
s3-samr-server: unify callback convention: _samr_QueryDomainInfo.
Guenther
(cherry picked from commit ac2c35bc379de83091644455dbeba0bea3e5ceb6)
commit 0f6a80fb198f3cc4ffc875c77da3ff3d8b8c5ca3
Author: Günther Deschner <gd at samba.org>
Date: Thu Oct 23 03:30:14 2008 +0200
s3-samr-server: fix return code in _samr_QueryDisplayInformation.
Guenther
(cherry picked from commit 30fa6c3ba19a8f816043405ba5d9eec84dd1c97b)
-----------------------------------------------------------------------
Summary of changes:
source/rpc_server/srv_samr_nt.c | 105 ++++++++++++++-------------------------
1 files changed, 38 insertions(+), 67 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/rpc_server/srv_samr_nt.c b/source/rpc_server/srv_samr_nt.c
index ac3cdfa..a24fb32 100644
--- a/source/rpc_server/srv_samr_nt.c
+++ b/source/rpc_server/srv_samr_nt.c
@@ -1648,7 +1648,7 @@ NTSTATUS _samr_QueryDisplayInfo(pipes_struct *p,
/* calculate the total size */
total_data_size=num_account*struct_size;
- if (num_account) {
+ if (max_entries <= num_account) {
status = STATUS_MORE_ENTRIES;
} else {
status = NT_STATUS_OK;
@@ -2911,14 +2911,11 @@ NTSTATUS _samr_GetGroupsForUser(pipes_struct *p,
}
/*******************************************************************
- samr_QueryDomainInfo_internal
+ _samr_QueryDomainInfo
********************************************************************/
-static NTSTATUS samr_QueryDomainInfo_internal(const char *fn_name,
- pipes_struct *p,
- struct policy_handle *handle,
- uint32_t level,
- union samr_DomainInfo **dom_info_ptr)
+NTSTATUS _samr_QueryDomainInfo(pipes_struct *p,
+ struct samr_QueryDomainInfo *r)
{
NTSTATUS status = NT_STATUS_OK;
struct samr_info *info = NULL;
@@ -2940,28 +2937,26 @@ static NTSTATUS samr_QueryDomainInfo_internal(const char *fn_name,
uint32 num_users=0, num_groups=0, num_aliases=0;
- DEBUG(5,("%s: %d\n", fn_name, __LINE__));
+ DEBUG(5,("_samr_QueryDomainInfo: %d\n", __LINE__));
dom_info = TALLOC_ZERO_P(p->mem_ctx, union samr_DomainInfo);
if (!dom_info) {
return NT_STATUS_NO_MEMORY;
}
- *dom_info_ptr = dom_info;
-
/* find the policy handle. open a policy on it. */
- if (!find_policy_by_hnd(p, handle, (void **)(void *)&info)) {
+ if (!find_policy_by_hnd(p, r->in.domain_handle, (void **)(void *)&info)) {
return NT_STATUS_INVALID_HANDLE;
}
status = access_check_samr_function(info->acc_granted,
SA_RIGHT_SAM_OPEN_DOMAIN,
- "_samr_QueryDomainInfo_internal" );
+ "_samr_QueryDomainInfo" );
if ( !NT_STATUS_IS_OK(status) )
return status;
- switch (level) {
+ switch (r->in.level) {
case 0x01:
become_root();
@@ -3137,23 +3132,11 @@ static NTSTATUS samr_QueryDomainInfo_internal(const char *fn_name,
return NT_STATUS_INVALID_INFO_CLASS;
}
- DEBUG(5,("%s: %d\n", fn_name, __LINE__));
-
- return status;
-}
+ *r->out.info = dom_info;
-/*******************************************************************
- _samr_QueryDomainInfo
- ********************************************************************/
+ DEBUG(5,("_samr_QueryDomainInfo: %d\n", __LINE__));
-NTSTATUS _samr_QueryDomainInfo(pipes_struct *p,
- struct samr_QueryDomainInfo *r)
-{
- return samr_QueryDomainInfo_internal("_samr_QueryDomainInfo",
- p,
- r->in.domain_handle,
- r->in.level,
- r->out.info);
+ return status;
}
/* W2k3 seems to use the same check for all 3 objects that can be created via
@@ -4158,20 +4141,18 @@ static NTSTATUS set_user_info_25(TALLOC_CTX *mem_ctx,
}
/*******************************************************************
- samr_SetUserInfo_internal
+ samr_SetUserInfo
********************************************************************/
-static NTSTATUS samr_SetUserInfo_internal(const char *fn_name,
- pipes_struct *p,
- struct policy_handle *user_handle,
- uint16_t level,
- union samr_UserInfo *info)
+NTSTATUS _samr_SetUserInfo(pipes_struct *p,
+ struct samr_SetUserInfo *r)
{
NTSTATUS status;
struct samu *pwd = NULL;
DOM_SID sid;
- POLICY_HND *pol = user_handle;
- uint16_t switch_value = level;
+ POLICY_HND *pol = r->in.user_handle;
+ union samr_UserInfo *info = r->in.info;
+ uint16_t switch_value = r->in.level;
uint32_t acc_granted;
uint32_t acc_required;
bool ret;
@@ -4179,7 +4160,7 @@ static NTSTATUS samr_SetUserInfo_internal(const char *fn_name,
uint32_t acb_info;
DISP_INFO *disp_info = NULL;
- DEBUG(5,("%s: %d\n", fn_name, __LINE__));
+ DEBUG(5,("_samr_SetUserInfo: %d\n", __LINE__));
/* find the policy handle. open a policy on it. */
if (!get_lsa_policy_samr_sid(p, pol, &sid, &acc_granted, &disp_info)) {
@@ -4209,16 +4190,16 @@ static NTSTATUS samr_SetUserInfo_internal(const char *fn_name,
status = access_check_samr_function(acc_granted,
acc_required,
- fn_name);
+ "_samr_SetUserInfo");
if (!NT_STATUS_IS_OK(status)) {
return status;
}
- DEBUG(5, ("%s: sid:%s, level:%d\n",
- fn_name, sid_string_dbg(&sid), switch_value));
+ DEBUG(5, ("_samr_SetUserInfo: sid:%s, level:%d\n",
+ sid_string_dbg(&sid), switch_value));
if (info == NULL) {
- DEBUG(5, ("%s: NULL info level\n", fn_name));
+ DEBUG(5, ("_samr_SetUserInfo: NULL info level\n"));
return NT_STATUS_INVALID_INFO_CLASS;
}
@@ -4252,8 +4233,7 @@ static NTSTATUS samr_SetUserInfo_internal(const char *fn_name,
}
}
- DEBUG(5, ("%s: %s does%s possess sufficient rights\n",
- fn_name,
+ DEBUG(5, ("_samr_SetUserInfo: %s does%s possess sufficient rights\n",
uidtoname(p->pipe_user.ut.uid),
has_enough_rights ? "" : " not"));
@@ -4380,31 +4360,19 @@ static NTSTATUS samr_SetUserInfo_internal(const char *fn_name,
}
/*******************************************************************
- _samr_SetUserInfo
- ********************************************************************/
-
-NTSTATUS _samr_SetUserInfo(pipes_struct *p,
- struct samr_SetUserInfo *r)
-{
- return samr_SetUserInfo_internal("_samr_SetUserInfo",
- p,
- r->in.user_handle,
- r->in.level,
- r->in.info);
-}
-
-/*******************************************************************
_samr_SetUserInfo2
********************************************************************/
NTSTATUS _samr_SetUserInfo2(pipes_struct *p,
struct samr_SetUserInfo2 *r)
{
- return samr_SetUserInfo_internal("_samr_SetUserInfo2",
- p,
- r->in.user_handle,
- r->in.level,
- r->in.info);
+ struct samr_SetUserInfo q;
+
+ q.in.user_handle = r->in.user_handle;
+ q.in.level = r->in.level;
+ q.in.info = r->in.info;
+
+ return _samr_SetUserInfo(p, &q);
}
/*********************************************************************
@@ -5681,11 +5649,14 @@ NTSTATUS _samr_RemoveMemberFromForeignDomain(pipes_struct *p,
NTSTATUS _samr_QueryDomainInfo2(pipes_struct *p,
struct samr_QueryDomainInfo2 *r)
{
- return samr_QueryDomainInfo_internal("_samr_QueryDomainInfo2",
- p,
- r->in.domain_handle,
- r->in.level,
- r->out.info);
+ struct samr_QueryDomainInfo q;
+
+ q.in.domain_handle = r->in.domain_handle;
+ q.in.level = r->in.level;
+
+ q.out.info = r->out.info;
+
+ return _samr_QueryDomainInfo(p, &q);
}
/*******************************************************************
--
Samba Shared Repository
More information about the samba-cvs
mailing list