summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2010-08-26 17:21:39 +0200
committerGünther Deschner <gd@samba.org>2010-09-20 14:05:07 -0700
commit102a70e809b262fca8ea09fbd4e2788511150006 (patch)
tree5df2b4daac9f93ec684947515b76fd0cb1cad2fb /source3/lib
parent4dbd743e467096624961533335afccadc67af0e6 (diff)
downloadsamba-102a70e809b262fca8ea09fbd4e2788511150006.tar.gz
samba-102a70e809b262fca8ea09fbd4e2788511150006.tar.bz2
samba-102a70e809b262fca8ea09fbd4e2788511150006.zip
s3-util: use shared dom_sid_dup.
Guenther
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/netapi/group.c5
-rw-r--r--source3/lib/netapi/user.c15
-rw-r--r--source3/lib/secdesc.c4
-rw-r--r--source3/lib/util_sid.c19
4 files changed, 13 insertions, 30 deletions
diff --git a/source3/lib/netapi/group.c b/source3/lib/netapi/group.c
index 53114b5d7d..6a926953c0 100644
--- a/source3/lib/netapi/group.c
+++ b/source3/lib/netapi/group.c
@@ -25,6 +25,7 @@
#include "lib/netapi/libnetapi.h"
#include "../librpc/gen_ndr/cli_samr.h"
#include "rpc_client/init_lsa.h"
+#include "../libcli/security/dom_sid.h"
/****************************************************************
****************************************************************/
@@ -603,7 +604,7 @@ static WERROR map_group_info_to_buffer(TALLOC_CTX *mem_ctx,
info3.grpi3_name = info->name.string;
info3.grpi3_comment = info->description.string;
info3.grpi3_attributes = info->attributes;
- info3.grpi3_group_sid = (struct domsid *)sid_dup_talloc(mem_ctx, &sid);
+ info3.grpi3_group_sid = (struct domsid *)dom_sid_dup(mem_ctx, &sid);
*buffer = (uint8_t *)talloc_memdup(mem_ctx, &info3, sizeof(info3));
@@ -1086,7 +1087,7 @@ static WERROR convert_samr_disp_groups_to_GROUP_INFO_3_buffer(TALLOC_CTX *mem_ct
groups->entries[i].account_name.string);
g3[i].grpi3_comment = talloc_strdup(mem_ctx,
groups->entries[i].description.string);
- g3[i].grpi3_group_sid = (struct domsid *)sid_dup_talloc(mem_ctx, &sid);
+ g3[i].grpi3_group_sid = (struct domsid *)dom_sid_dup(mem_ctx, &sid);
g3[i].grpi3_attributes = groups->entries[i].acct_flags;
W_ERROR_HAVE_NO_MEMORY(g3[i].grpi3_name);
}
diff --git a/source3/lib/netapi/user.c b/source3/lib/netapi/user.c
index 67a7443cd4..de0fc7da6e 100644
--- a/source3/lib/netapi/user.c
+++ b/source3/lib/netapi/user.c
@@ -27,6 +27,7 @@
#include "rpc_client/init_samr.h"
#include "../libds/common/flags.h"
#include "rpc_client/init_lsa.h"
+#include "../libcli/security/dom_sid.h"
/****************************************************************
****************************************************************/
@@ -705,12 +706,12 @@ static NTSTATUS libnetapi_samr_lookup_user(TALLOC_CTX *mem_ctx,
for (i=0; i<rid_array->count; i++) {
sid_compose(&sid, domain_sid, rid_array->rids[i].rid);
- sid_array.sids[i].sid = sid_dup_talloc(mem_ctx, &sid);
+ sid_array.sids[i].sid = dom_sid_dup(mem_ctx, &sid);
NT_STATUS_HAVE_NO_MEMORY(sid_array.sids[i].sid);
}
sid_compose(&sid, domain_sid, rid);
- sid_array.sids[i].sid = sid_dup_talloc(mem_ctx, &sid);
+ sid_array.sids[i].sid = dom_sid_dup(mem_ctx, &sid);
NT_STATUS_HAVE_NO_MEMORY(sid_array.sids[i].sid);
status = rpccli_samr_GetAliasMembership(pipe_cli, mem_ctx,
@@ -923,7 +924,7 @@ static NTSTATUS info21_to_USER_INFO_4(TALLOC_CTX *mem_ctx,
if (!sid_compose(&sid, domain_sid, i21->rid)) {
return NT_STATUS_NO_MEMORY;
}
- i->usri4_user_sid = (struct domsid *)sid_dup_talloc(mem_ctx, &sid);
+ i->usri4_user_sid = (struct domsid *)dom_sid_dup(mem_ctx, &sid);
i->usri4_primary_group_id = i21->primary_gid;
i->usri4_profile = talloc_strdup(mem_ctx, i21->profile_path.string);
i->usri4_home_dir_drive = talloc_strdup(mem_ctx, i21->home_drive.string);
@@ -1024,7 +1025,7 @@ static NTSTATUS info21_to_USER_INFO_23(TALLOC_CTX *mem_ctx,
if (!sid_compose(&sid, domain_sid, i21->rid)) {
return NT_STATUS_NO_MEMORY;
}
- i->usri23_user_sid = (struct domsid *)sid_dup_talloc(mem_ctx, &sid);
+ i->usri23_user_sid = (struct domsid *)dom_sid_dup(mem_ctx, &sid);
return NT_STATUS_OK;
}
@@ -2066,7 +2067,7 @@ static NTSTATUS query_USER_MODALS_INFO_2(TALLOC_CTX *mem_ctx,
info2->usrmod2_domain_name =
talloc_strdup(mem_ctx, dom_info5.domain_name.string);
info2->usrmod2_domain_id =
- (struct domsid *)sid_dup_talloc(mem_ctx, domain_sid);
+ (struct domsid *)dom_sid_dup(mem_ctx, domain_sid);
NT_STATUS_HAVE_NO_MEMORY(info2->usrmod2_domain_name);
NT_STATUS_HAVE_NO_MEMORY(info2->usrmod2_domain_id);
@@ -3334,7 +3335,7 @@ WERROR NetUserGetLocalGroups_r(struct libnetapi_ctx *ctx,
goto done;
}
- sid_array.sids[0].sid = sid_dup_talloc(ctx, &user_sid);
+ sid_array.sids[0].sid = dom_sid_dup(ctx, &user_sid);
if (!sid_array.sids[0].sid) {
werr = WERR_NOMEM;
goto done;
@@ -3348,7 +3349,7 @@ WERROR NetUserGetLocalGroups_r(struct libnetapi_ctx *ctx,
goto done;
}
- sid_array.sids[i+1].sid = sid_dup_talloc(ctx, &sid);
+ sid_array.sids[i+1].sid = dom_sid_dup(ctx, &sid);
if (!sid_array.sids[i+1].sid) {
werr = WERR_NOMEM;
goto done;
diff --git a/source3/lib/secdesc.c b/source3/lib/secdesc.c
index b8bb0acf7b..11256817a5 100644
--- a/source3/lib/secdesc.c
+++ b/source3/lib/secdesc.c
@@ -191,10 +191,10 @@ struct security_descriptor *make_sec_desc(TALLOC_CTX *ctx,
dst->sacl = NULL;
dst->dacl = NULL;
- if(owner_sid && ((dst->owner_sid = sid_dup_talloc(dst,owner_sid)) == NULL))
+ if(owner_sid && ((dst->owner_sid = dom_sid_dup(dst,owner_sid)) == NULL))
goto error_exit;
- if(grp_sid && ((dst->group_sid = sid_dup_talloc(dst,grp_sid)) == NULL))
+ if(grp_sid && ((dst->group_sid = dom_sid_dup(dst,grp_sid)) == NULL))
goto error_exit;
if(sacl && ((dst->sacl = dup_sec_acl(dst, sacl)) == NULL))
diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c
index 1873692f0f..d75c8e2c97 100644
--- a/source3/lib/util_sid.c
+++ b/source3/lib/util_sid.c
@@ -366,25 +366,6 @@ char *sid_binstring_hex(const struct dom_sid *sid)
return s;
}
-/*******************************************************************
- Tallocs a duplicate SID.
-********************************************************************/
-
-struct dom_sid *sid_dup_talloc(TALLOC_CTX *ctx, const struct dom_sid *src)
-{
- struct dom_sid *dst;
-
- if (src == NULL) {
- return NULL;
- }
- dst = talloc_zero(ctx, struct dom_sid);
- if (dst == NULL) {
- return NULL;
- }
- sid_copy(dst, src);
- return dst;
-}
-
/********************************************************************
Add SID to an array SIDs
********************************************************************/