summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-02-18 09:50:23 +0100
committerVolker Lendecke <vl@samba.org>2014-02-18 10:29:18 +0100
commit2f41ecada530be78e02a2acfec2bf394e20a6bd4 (patch)
tree555b2de1f0b99cc75bfbd7afa6865af100eec2ed
parentc1bffac7e5f6aec7020bc2ce20915df7f4ce9e38 (diff)
downloadsamba-2f41ecada530be78e02a2acfec2bf394e20a6bd4.tar.gz
samba-2f41ecada530be78e02a2acfec2bf394e20a6bd4.tar.xz
samba-2f41ecada530be78e02a2acfec2bf394e20a6bd4.zip
Revert "source4: Use wbc_xids_to_sids"
This reverts commit d0932a1ae089fda0d41be21a9916caeca7c0c233. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
-rw-r--r--source4/ntvfs/posix/pvfs_acl.c12
-rw-r--r--source4/ntvfs/posix/pvfs_acl_nfs4.c5
-rw-r--r--source4/rpc_server/unixinfo/dcesrv_unixinfo.c12
3 files changed, 24 insertions, 5 deletions
diff --git a/source4/ntvfs/posix/pvfs_acl.c b/source4/ntvfs/posix/pvfs_acl.c
index 3ef66e1a12..2070fd105c 100644
--- a/source4/ntvfs/posix/pvfs_acl.c
+++ b/source4/ntvfs/posix/pvfs_acl.c
@@ -151,6 +151,7 @@ static NTSTATUS pvfs_default_acl(struct pvfs_state *pvfs,
struct security_ace ace;
mode_t mode;
struct id_map *ids;
+ struct composite_context *ctx;
*psd = security_descriptor_initialise(req);
if (*psd == NULL) {
@@ -169,7 +170,10 @@ static NTSTATUS pvfs_default_acl(struct pvfs_state *pvfs,
ids[1].xid.type = ID_TYPE_GID;
ids[1].sid = NULL;
- status = wbc_xids_to_sids(pvfs->wbc_ctx->event_ctx, ids, 2);
+ ctx = wbc_xids_to_sids_send(pvfs->wbc_ctx, ids, 2, ids);
+ NT_STATUS_HAVE_NO_MEMORY(ctx);
+
+ status = wbc_xids_to_sids_recv(ctx, &ids);
NT_STATUS_NOT_OK_RETURN(status);
sd->owner_sid = talloc_steal(sd, ids[0].sid);
@@ -921,6 +925,7 @@ NTSTATUS pvfs_acl_inherited_sd(struct pvfs_state *pvfs,
NTSTATUS status;
struct security_descriptor *parent_sd, *sd;
struct id_map *ids;
+ struct composite_context *ctx;
TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
*ret_sd = NULL;
@@ -969,7 +974,10 @@ NTSTATUS pvfs_acl_inherited_sd(struct pvfs_state *pvfs,
ids[1].sid = NULL;
ids[1].status = ID_UNKNOWN;
- status = wbc_xids_to_sids(pvfs->wbc_ctx->event_ctx, ids, 2);
+ ctx = wbc_xids_to_sids_send(pvfs->wbc_ctx, ids, 2, ids);
+ NT_STATUS_HAVE_NO_MEMORY_AND_FREE(ctx, tmp_ctx);
+
+ status = wbc_xids_to_sids_recv(ctx, &ids);
NT_STATUS_NOT_OK_RETURN_AND_FREE(status, tmp_ctx);
sd->owner_sid = talloc_steal(sd, ids[0].sid);
diff --git a/source4/ntvfs/posix/pvfs_acl_nfs4.c b/source4/ntvfs/posix/pvfs_acl_nfs4.c
index 272cdbc539..bf4d9c2721 100644
--- a/source4/ntvfs/posix/pvfs_acl_nfs4.c
+++ b/source4/ntvfs/posix/pvfs_acl_nfs4.c
@@ -42,6 +42,7 @@ static NTSTATUS pvfs_acl_load_nfs4(struct pvfs_state *pvfs, struct pvfs_filename
struct security_descriptor *sd;
int i, num_ids;
struct id_map *ids;
+ struct composite_context *ctx;
acl = talloc_zero(mem_ctx, struct nfs4acl);
NT_STATUS_HAVE_NO_MEMORY(acl);
@@ -90,7 +91,9 @@ static NTSTATUS pvfs_acl_load_nfs4(struct pvfs_state *pvfs, struct pvfs_filename
/* Allocate memory for the sids from the security descriptor to be on
* the safe side. */
- status = wbc_xids_to_sids(pvfs->wbc_ctx->event_ctx, ids, num_ids);
+ ctx = wbc_xids_to_sids_send(pvfs->wbc_ctx, sd, num_ids, ids);
+ NT_STATUS_HAVE_NO_MEMORY(ctx);
+ status = wbc_xids_to_sids_recv(ctx, &ids);
NT_STATUS_NOT_OK_RETURN(status);
sd->owner_sid = talloc_steal(sd, ids[0].sid);
diff --git a/source4/rpc_server/unixinfo/dcesrv_unixinfo.c b/source4/rpc_server/unixinfo/dcesrv_unixinfo.c
index 821f53c495..260d5abe92 100644
--- a/source4/rpc_server/unixinfo/dcesrv_unixinfo.c
+++ b/source4/rpc_server/unixinfo/dcesrv_unixinfo.c
@@ -79,6 +79,7 @@ static NTSTATUS dcesrv_unixinfo_UidToSid(struct dcesrv_call_state *dce_call,
dce_call->context->private_data,
struct wbc_context);
struct id_map *ids;
+ struct composite_context *ctx;
uint32_t uid;
NTSTATUS status;
@@ -99,7 +100,10 @@ static NTSTATUS dcesrv_unixinfo_UidToSid(struct dcesrv_call_state *dce_call,
ids->xid.id = uid;
ids->xid.type = ID_TYPE_UID;
- status = wbc_xids_to_sids(wbc_ctx->event_ctx, ids, 1);
+ ctx = wbc_xids_to_sids_send(wbc_ctx, ids, 1, ids);
+ NT_STATUS_HAVE_NO_MEMORY(ctx);
+
+ status = wbc_xids_to_sids_recv(ctx, &ids);
NT_STATUS_NOT_OK_RETURN(status);
r->out.sid = ids->sid;
@@ -144,6 +148,7 @@ static NTSTATUS dcesrv_unixinfo_GidToSid(struct dcesrv_call_state *dce_call,
dce_call->context->private_data,
struct wbc_context);
struct id_map *ids;
+ struct composite_context *ctx;
uint32_t gid;
NTSTATUS status;
@@ -164,7 +169,10 @@ static NTSTATUS dcesrv_unixinfo_GidToSid(struct dcesrv_call_state *dce_call,
ids->xid.id = gid;
ids->xid.type = ID_TYPE_GID;
- status = wbc_xids_to_sids(wbc_ctx->event_ctx, ids, 1);
+ ctx = wbc_xids_to_sids_send(wbc_ctx, ids, 1, ids);
+ NT_STATUS_HAVE_NO_MEMORY(ctx);
+
+ status = wbc_xids_to_sids_recv(ctx, &ids);
NT_STATUS_NOT_OK_RETURN(status);
r->out.sid = ids->sid;