[SCM] Samba Shared Repository - branch master updated
Volker Lendecke
vlendec at samba.org
Sat Oct 2 04:01:54 MDT 2010
The branch, master has been updated
via 13756d0 s3: Attempt to fix bug 7665
from fc6e910 s3: Fix a 64-bit BUG
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 13756d0e803c228f7ff75ba996acd6afd1df0dcb
Author: Volker Lendecke <vl at samba.org>
Date: Sat Oct 2 11:50:26 2010 +0200
s3: Attempt to fix bug 7665
Quite a few of our internal routines put stuff on talloc_tos() these days.
In top-level netapi routines, properly allocate a stackframe and clean it
again. Also, don't leak memory in the rpccli_ callers onto the libnetapi
context.
-----------------------------------------------------------------------
Summary of changes:
source3/lib/netapi/file.c | 6 +-
source3/lib/netapi/getdc.c | 4 +-
source3/lib/netapi/group.c | 112 ++++++++++++++--------------
source3/lib/netapi/joindomain.c | 10 +-
source3/lib/netapi/libnetapi.c | 159 +++++++++++++++++++++++++++++++++++++++
source3/lib/netapi/localgroup.c | 34 ++++----
source3/lib/netapi/netlogon.c | 6 +-
source3/lib/netapi/serverinfo.c | 6 +-
source3/lib/netapi/share.c | 10 +-
source3/lib/netapi/shutdown.c | 4 +-
source3/lib/netapi/user.c | 80 ++++++++++----------
11 files changed, 295 insertions(+), 136 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/lib/netapi/file.c b/source3/lib/netapi/file.c
index 1c3ef6d..6d76be0 100644
--- a/source3/lib/netapi/file.c
+++ b/source3/lib/netapi/file.c
@@ -42,7 +42,7 @@ WERROR NetFileClose_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_srvsvc_NetFileClose(pipe_cli, ctx,
+ status = rpccli_srvsvc_NetFileClose(pipe_cli, talloc_tos(),
r->in.server_name,
r->in.fileid,
&werr);
@@ -136,7 +136,7 @@ WERROR NetFileGetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_srvsvc_NetFileGetInfo(pipe_cli, ctx,
+ status = rpccli_srvsvc_NetFileGetInfo(pipe_cli, talloc_tos(),
r->in.server_name,
r->in.fileid,
r->in.level,
@@ -216,7 +216,7 @@ WERROR NetFileEnum_r(struct libnetapi_ctx *ctx,
break;
}
- status = rpccli_srvsvc_NetFileEnum(pipe_cli, ctx,
+ status = rpccli_srvsvc_NetFileEnum(pipe_cli, talloc_tos(),
r->in.server_name,
r->in.base_path,
r->in.user_name,
diff --git a/source3/lib/netapi/getdc.c b/source3/lib/netapi/getdc.c
index 9042702..faf2672 100644
--- a/source3/lib/netapi/getdc.c
+++ b/source3/lib/netapi/getdc.c
@@ -51,7 +51,7 @@ WERROR NetGetDCName_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_netr_GetDcName(pipe_cli, ctx,
+ status = rpccli_netr_GetDcName(pipe_cli, talloc_tos(),
r->in.server_name,
r->in.domain_name,
(const char **)r->out.buffer,
@@ -91,7 +91,7 @@ WERROR NetGetAnyDCName_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_netr_GetAnyDCName(pipe_cli, ctx,
+ status = rpccli_netr_GetAnyDCName(pipe_cli, talloc_tos(),
r->in.server_name,
r->in.domain_name,
(const char **)r->out.buffer,
diff --git a/source3/lib/netapi/group.c b/source3/lib/netapi/group.c
index 6a92695..9b9d8f0 100644
--- a/source3/lib/netapi/group.c
+++ b/source3/lib/netapi/group.c
@@ -107,7 +107,7 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
break;
}
- status = rpccli_samr_CreateDomainGroup(pipe_cli, ctx,
+ status = rpccli_samr_CreateDomainGroup(pipe_cli, talloc_tos(),
&domain_handle,
&lsa_group_name,
SEC_STD_DELETE |
@@ -126,7 +126,7 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
init_lsa_String(&info.description,
info1->grpi1_comment);
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFODESCRIPTION,
&info);
@@ -137,7 +137,7 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
init_lsa_String(&info.description,
info2->grpi2_comment);
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFODESCRIPTION,
&info);
@@ -149,7 +149,7 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
if (info2->grpi2_attributes != 0) {
info.attributes.attributes = info2->grpi2_attributes;
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFOATTRIBUTES,
&info);
@@ -161,7 +161,7 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
init_lsa_String(&info.description,
info3->grpi3_comment);
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFODESCRIPTION,
&info);
@@ -173,7 +173,7 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
if (info3->grpi3_attributes != 0) {
info.attributes.attributes = info3->grpi3_attributes;
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFOATTRIBUTES,
&info);
@@ -192,12 +192,12 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
goto done;
failed:
- rpccli_samr_DeleteDomainGroup(pipe_cli, ctx,
+ rpccli_samr_DeleteDomainGroup(pipe_cli, talloc_tos(),
&group_handle);
done:
if (is_valid_policy_hnd(&group_handle)) {
- rpccli_samr_Close(pipe_cli, ctx, &group_handle);
+ rpccli_samr_Close(pipe_cli, talloc_tos(), &group_handle);
}
if (ctx->disable_policy_handle_cache) {
@@ -264,7 +264,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_group_name, r->in.group_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_group_name,
@@ -280,7 +280,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_OpenGroup(pipe_cli, ctx,
+ status = rpccli_samr_OpenGroup(pipe_cli, talloc_tos(),
&domain_handle,
SEC_STD_DELETE |
SAMR_GROUP_ACCESS_GET_MEMBERS |
@@ -294,7 +294,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_QueryGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_QueryGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFOATTRIBUTES,
&info);
@@ -310,7 +310,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
goto done;
}
#endif
- status = rpccli_samr_QueryGroupMember(pipe_cli, ctx,
+ status = rpccli_samr_QueryGroupMember(pipe_cli, talloc_tos(),
&group_handle,
&rid_array);
if (!NT_STATUS_IS_OK(status)) {
@@ -322,7 +322,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
struct lsa_Strings names;
struct samr_Ids member_types;
- status = rpccli_samr_LookupRids(pipe_cli, ctx,
+ status = rpccli_samr_LookupRids(pipe_cli, talloc_tos(),
&domain_handle,
rid_array->count,
rid_array->rids,
@@ -336,7 +336,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
for (i=0; i < rid_array->count; i++) {
- status = rpccli_samr_DeleteGroupMember(pipe_cli, ctx,
+ status = rpccli_samr_DeleteGroupMember(pipe_cli, talloc_tos(),
&group_handle,
rid_array->rids[i]);
if (!NT_STATUS_IS_OK(status)) {
@@ -345,7 +345,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
}
}
- status = rpccli_samr_DeleteDomainGroup(pipe_cli, ctx,
+ status = rpccli_samr_DeleteDomainGroup(pipe_cli, talloc_tos(),
&group_handle);
if (!NT_STATUS_IS_OK(status)) {
werr = ntstatus_to_werror(status);
@@ -358,7 +358,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
done:
if (is_valid_policy_hnd(&group_handle)) {
- rpccli_samr_Close(pipe_cli, ctx, &group_handle);
+ rpccli_samr_Close(pipe_cli, talloc_tos(), &group_handle);
}
if (ctx->disable_policy_handle_cache) {
@@ -429,7 +429,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_group_name, r->in.group_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_group_name,
@@ -445,7 +445,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_OpenGroup(pipe_cli, ctx,
+ status = rpccli_samr_OpenGroup(pipe_cli, talloc_tos(),
&domain_handle,
SAMR_GROUP_ACCESS_SET_INFO |
SAMR_GROUP_ACCESS_LOOKUP_INFO,
@@ -460,7 +460,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
case 0:
g0 = (struct GROUP_INFO_0 *)r->in.buffer;
init_lsa_String(&info.name, g0->grpi0_name);
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFONAME,
&info);
@@ -468,7 +468,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
case 1:
g1 = (struct GROUP_INFO_1 *)r->in.buffer;
init_lsa_String(&info.description, g1->grpi1_comment);
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFODESCRIPTION,
&info);
@@ -476,7 +476,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
case 2:
g2 = (struct GROUP_INFO_2 *)r->in.buffer;
init_lsa_String(&info.description, g2->grpi2_comment);
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFODESCRIPTION,
&info);
@@ -485,7 +485,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
info.attributes.attributes = g2->grpi2_attributes;
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFOATTRIBUTES,
&info);
@@ -493,7 +493,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
case 3:
g3 = (struct GROUP_INFO_3 *)r->in.buffer;
init_lsa_String(&info.description, g3->grpi3_comment);
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFODESCRIPTION,
&info);
@@ -502,7 +502,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
info.attributes.attributes = g3->grpi3_attributes;
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFOATTRIBUTES,
&info);
@@ -510,7 +510,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
case 1002:
g1002 = (struct GROUP_INFO_1002 *)r->in.buffer;
init_lsa_String(&info.description, g1002->grpi1002_comment);
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFODESCRIPTION,
&info);
@@ -518,7 +518,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
case 1005:
g1005 = (struct GROUP_INFO_1005 *)r->in.buffer;
info.attributes.attributes = g1005->grpi1005_attributes;
- status = rpccli_samr_SetGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_SetGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFOATTRIBUTES,
&info);
@@ -537,7 +537,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
done:
if (is_valid_policy_hnd(&group_handle)) {
- rpccli_samr_Close(pipe_cli, ctx, &group_handle);
+ rpccli_samr_Close(pipe_cli, talloc_tos(), &group_handle);
}
if (ctx->disable_policy_handle_cache) {
@@ -664,7 +664,7 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_group_name, r->in.group_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_group_name,
@@ -680,7 +680,7 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_OpenGroup(pipe_cli, ctx,
+ status = rpccli_samr_OpenGroup(pipe_cli, talloc_tos(),
&domain_handle,
SAMR_GROUP_ACCESS_LOOKUP_INFO,
rids.ids[0],
@@ -690,12 +690,12 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_QueryGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_QueryGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFOALL2,
&info);
if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_INFO_CLASS)) {
- status = rpccli_samr_QueryGroupInfo(pipe_cli, ctx,
+ status = rpccli_samr_QueryGroupInfo(pipe_cli, talloc_tos(),
&group_handle,
GROUPINFOALL,
&info);
@@ -716,7 +716,7 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx,
}
done:
if (is_valid_policy_hnd(&group_handle)) {
- rpccli_samr_Close(pipe_cli, ctx, &group_handle);
+ rpccli_samr_Close(pipe_cli, talloc_tos(), &group_handle);
}
if (ctx->disable_policy_handle_cache) {
@@ -780,7 +780,7 @@ WERROR NetGroupAddUser_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_group_name, r->in.group_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_group_name,
@@ -796,7 +796,7 @@ WERROR NetGroupAddUser_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_OpenGroup(pipe_cli, ctx,
+ status = rpccli_samr_OpenGroup(pipe_cli, talloc_tos(),
&domain_handle,
SAMR_GROUP_ACCESS_ADD_MEMBER,
rids.ids[0],
@@ -808,7 +808,7 @@ WERROR NetGroupAddUser_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_user_name, r->in.user_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_user_name,
@@ -824,7 +824,7 @@ WERROR NetGroupAddUser_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_AddGroupMember(pipe_cli, ctx,
+ status = rpccli_samr_AddGroupMember(pipe_cli, talloc_tos(),
&group_handle,
rids.ids[0],
7); /* why ? */
@@ -837,7 +837,7 @@ WERROR NetGroupAddUser_r(struct libnetapi_ctx *ctx,
done:
if (is_valid_policy_hnd(&group_handle)) {
- rpccli_samr_Close(pipe_cli, ctx, &group_handle);
+ rpccli_samr_Close(pipe_cli, talloc_tos(), &group_handle);
}
if (ctx->disable_policy_handle_cache) {
@@ -901,7 +901,7 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_group_name, r->in.group_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_group_name,
@@ -917,7 +917,7 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_OpenGroup(pipe_cli, ctx,
+ status = rpccli_samr_OpenGroup(pipe_cli, talloc_tos(),
&domain_handle,
SAMR_GROUP_ACCESS_REMOVE_MEMBER,
rids.ids[0],
@@ -929,7 +929,7 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_user_name, r->in.user_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_user_name,
@@ -945,7 +945,7 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_DeleteGroupMember(pipe_cli, ctx,
+ status = rpccli_samr_DeleteGroupMember(pipe_cli, talloc_tos(),
&group_handle,
rids.ids[0]);
if (!NT_STATUS_IS_OK(status)) {
@@ -957,7 +957,7 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
done:
if (is_valid_policy_hnd(&group_handle)) {
- rpccli_samr_Close(pipe_cli, ctx, &group_handle);
+ rpccli_samr_Close(pipe_cli, talloc_tos(), &group_handle);
}
if (ctx->disable_policy_handle_cache) {
@@ -1179,7 +1179,7 @@ WERROR NetGroupEnum_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_QueryDomainInfo(pipe_cli, ctx,
+ status = rpccli_samr_QueryDomainInfo(pipe_cli, talloc_tos(),
&domain_handle,
2,
&domain_info);
@@ -1310,7 +1310,7 @@ WERROR NetGroupGetUsers_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_account_name, r->in.group_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_account_name,
@@ -1321,7 +1321,7 @@ WERROR NetGroupGetUsers_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_OpenGroup(pipe_cli, ctx,
+ status = rpccli_samr_OpenGroup(pipe_cli, talloc_tos(),
&domain_handle,
SAMR_GROUP_ACCESS_GET_MEMBERS,
group_rids.ids[0],
@@ -1331,7 +1331,7 @@ WERROR NetGroupGetUsers_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_QueryGroupMember(pipe_cli, ctx,
+ status = rpccli_samr_QueryGroupMember(pipe_cli, talloc_tos(),
&group_handle,
&rid_array);
if (!NT_STATUS_IS_OK(status)) {
@@ -1339,7 +1339,7 @@ WERROR NetGroupGetUsers_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_LookupRids(pipe_cli, ctx,
+ status = rpccli_samr_LookupRids(pipe_cli, talloc_tos(),
&domain_handle,
rid_array->count,
rid_array->rids,
@@ -1375,7 +1375,7 @@ WERROR NetGroupGetUsers_r(struct libnetapi_ctx *ctx,
done:
if (is_valid_policy_hnd(&group_handle)) {
- rpccli_samr_Close(pipe_cli, ctx, &group_handle);
+ rpccli_samr_Close(pipe_cli, talloc_tos(), &group_handle);
}
if (ctx->disable_policy_handle_cache) {
@@ -1461,7 +1461,7 @@ WERROR NetGroupSetUsers_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_account_name, r->in.group_name);
- status = rpccli_samr_LookupNames(pipe_cli, ctx,
+ status = rpccli_samr_LookupNames(pipe_cli, talloc_tos(),
&domain_handle,
1,
&lsa_account_name,
@@ -1472,7 +1472,7 @@ WERROR NetGroupSetUsers_r(struct libnetapi_ctx *ctx,
goto done;
}
- status = rpccli_samr_OpenGroup(pipe_cli, ctx,
+ status = rpccli_samr_OpenGroup(pipe_cli, talloc_tos(),
&domain_handle,
SAMR_GROUP_ACCESS_GET_MEMBERS |
--
Samba Shared Repository
More information about the samba-cvs
mailing list