From c4efff10137df69c3cece82405c13c86607dc029 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 18 Feb 2014 09:50:37 +0100 Subject: [PATCH] Revert "source4: Use wbc_sids_to_xids" This reverts commit de7122ddc356697777cce95d22b3fab7697b30db. Signed-off-by: Volker Lendecke Reviewed-by: Andreas Schneider --- source4/auth/unix_token.c | 6 +++++- source4/ntvfs/posix/pvfs_acl.c | 11 +++++++---- source4/ntvfs/posix/pvfs_acl_nfs4.c | 8 +++++++- source4/rpc_server/unixinfo/dcesrv_unixinfo.c | 12 ++++++++++-- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/source4/auth/unix_token.c b/source4/auth/unix_token.c index aee950d9166..38109452a4b 100644 --- a/source4/auth/unix_token.c +++ b/source4/auth/unix_token.c @@ -36,6 +36,7 @@ NTSTATUS security_token_to_unix_token(TALLOC_CTX *mem_ctx, uint32_t s, g; NTSTATUS status; struct id_map *ids; + struct composite_context *ctx; /* we can't do unix security without a user and group */ if (token->num_sids < 2) { @@ -55,7 +56,10 @@ NTSTATUS security_token_to_unix_token(TALLOC_CTX *mem_ctx, ids[s].status = ID_UNKNOWN; } - status = wbc_sids_to_xids(wbc_ctx->event_ctx, ids, token->num_sids); + ctx = wbc_sids_to_xids_send(wbc_ctx, ids, token->num_sids, ids); + NT_STATUS_HAVE_NO_MEMORY(ctx); + + status = wbc_sids_to_xids_recv(ctx, &ids); NT_STATUS_NOT_OK_RETURN(status); g = token->num_sids; diff --git a/source4/ntvfs/posix/pvfs_acl.c b/source4/ntvfs/posix/pvfs_acl.c index 2070fd105c4..730ad484ce8 100644 --- a/source4/ntvfs/posix/pvfs_acl.c +++ b/source4/ntvfs/posix/pvfs_acl.c @@ -287,6 +287,7 @@ NTSTATUS pvfs_acl_set(struct pvfs_state *pvfs, uid_t new_uid = -1; gid_t new_gid = -1; struct id_map *ids; + struct composite_context *ctx; if (pvfs->acl_ops != NULL) { status = pvfs->acl_ops->acl_load(pvfs, name, fd, req, &sd); @@ -317,8 +318,9 @@ NTSTATUS pvfs_acl_set(struct pvfs_state *pvfs, } if (!dom_sid_equal(sd->owner_sid, new_sd->owner_sid)) { ids->sid = new_sd->owner_sid; - status = wbc_sids_to_xids(pvfs->wbc_ctx->event_ctx, - ids, 1); + ctx = wbc_sids_to_xids_send(pvfs->wbc_ctx, ids, 1, ids); + NT_STATUS_HAVE_NO_MEMORY(ctx); + status = wbc_sids_to_xids_recv(ctx, &ids); NT_STATUS_NOT_OK_RETURN(status); if (ids->xid.type == ID_TYPE_BOTH || @@ -335,8 +337,9 @@ NTSTATUS pvfs_acl_set(struct pvfs_state *pvfs, } if (!dom_sid_equal(sd->group_sid, new_sd->group_sid)) { ids->sid = new_sd->group_sid; - status = wbc_sids_to_xids(pvfs->wbc_ctx->event_ctx, - ids, 1); + ctx = wbc_sids_to_xids_send(pvfs->wbc_ctx, ids, 1, ids); + NT_STATUS_HAVE_NO_MEMORY(ctx); + status = wbc_sids_to_xids_recv(ctx, &ids); NT_STATUS_NOT_OK_RETURN(status); if (ids->xid.type == ID_TYPE_BOTH || diff --git a/source4/ntvfs/posix/pvfs_acl_nfs4.c b/source4/ntvfs/posix/pvfs_acl_nfs4.c index bf4d9c27210..bb88cbc051e 100644 --- a/source4/ntvfs/posix/pvfs_acl_nfs4.c +++ b/source4/ntvfs/posix/pvfs_acl_nfs4.c @@ -124,6 +124,7 @@ static NTSTATUS pvfs_acl_save_nfs4(struct pvfs_state *pvfs, struct pvfs_filename int i; TALLOC_CTX *tmp_ctx; struct id_map *ids; + struct composite_context *ctx; tmp_ctx = talloc_new(pvfs); NT_STATUS_HAVE_NO_MEMORY(tmp_ctx); @@ -158,7 +159,12 @@ static NTSTATUS pvfs_acl_save_nfs4(struct pvfs_state *pvfs, struct pvfs_filename ids[i].status = ID_UNKNOWN; } - status = wbc_sids_to_xids(pvfs->wbc_ctx->event_ctx, ids, acl.a_count); + ctx = wbc_sids_to_xids_send(pvfs->wbc_ctx,ids, acl.a_count, ids); + if (ctx == NULL) { + talloc_free(tmp_ctx); + return NT_STATUS_NO_MEMORY; + } + status = wbc_sids_to_xids_recv(ctx, &ids); if (!NT_STATUS_IS_OK(status)) { talloc_free(tmp_ctx); return status; diff --git a/source4/rpc_server/unixinfo/dcesrv_unixinfo.c b/source4/rpc_server/unixinfo/dcesrv_unixinfo.c index 260d5abe920..b5b8a89c8b9 100644 --- a/source4/rpc_server/unixinfo/dcesrv_unixinfo.c +++ b/source4/rpc_server/unixinfo/dcesrv_unixinfo.c @@ -50,6 +50,7 @@ static NTSTATUS dcesrv_unixinfo_SidToUid(struct dcesrv_call_state *dce_call, dce_call->context->private_data, struct wbc_context); struct id_map *ids; + struct composite_context *ctx; DEBUG(5, ("dcesrv_unixinfo_SidToUid called\n")); @@ -59,7 +60,10 @@ static NTSTATUS dcesrv_unixinfo_SidToUid(struct dcesrv_call_state *dce_call, ids->sid = &r->in.sid; ids->status = ID_UNKNOWN; ZERO_STRUCT(ids->xid); - status = wbc_sids_to_xids(wbc_ctx->event_ctx, ids, 1); + ctx = wbc_sids_to_xids_send(wbc_ctx, ids, 1, ids); + NT_STATUS_HAVE_NO_MEMORY(ctx); + + status = wbc_sids_to_xids_recv(ctx, &ids); NT_STATUS_NOT_OK_RETURN(status); if (ids->xid.type == ID_TYPE_BOTH || @@ -119,6 +123,7 @@ static NTSTATUS dcesrv_unixinfo_SidToGid(struct dcesrv_call_state *dce_call, dce_call->context->private_data, struct wbc_context); struct id_map *ids; + struct composite_context *ctx; DEBUG(5, ("dcesrv_unixinfo_SidToGid called\n")); @@ -128,7 +133,10 @@ static NTSTATUS dcesrv_unixinfo_SidToGid(struct dcesrv_call_state *dce_call, ids->sid = &r->in.sid; ids->status = ID_UNKNOWN; ZERO_STRUCT(ids->xid); - status = wbc_sids_to_xids(wbc_ctx->event_ctx, ids, 1); + ctx = wbc_sids_to_xids_send(wbc_ctx, ids, 1, ids); + NT_STATUS_HAVE_NO_MEMORY(ctx); + + status = wbc_sids_to_xids_recv(ctx, &ids); NT_STATUS_NOT_OK_RETURN(status); if (ids->xid.type == ID_TYPE_BOTH || -- 2.11.4.GIT