summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/rpc_client/cli_lsarpc.c33
1 files changed, 8 insertions, 25 deletions
diff --git a/source3/rpc_client/cli_lsarpc.c b/source3/rpc_client/cli_lsarpc.c
index 15a1a93721..8597bcb3a8 100644
--- a/source3/rpc_client/cli_lsarpc.c
+++ b/source3/rpc_client/cli_lsarpc.c
@@ -138,35 +138,18 @@ NTSTATUS rpccli_lsa_open_policy2(struct rpc_pipe_client *cli,
NTSTATUS rpccli_lsa_close(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
POLICY_HND *pol)
{
- prs_struct qbuf, rbuf;
- LSA_Q_CLOSE q;
- LSA_R_CLOSE r;
- NTSTATUS result;
-
- ZERO_STRUCT(q);
- ZERO_STRUCT(r);
-
- init_lsa_q_close(&q, pol);
-
- CLI_DO_RPC( cli, mem_ctx, PI_LSARPC, LSA_CLOSE,
- q, r,
- qbuf, rbuf,
- lsa_io_q_close,
- lsa_io_r_close,
- NT_STATUS_UNSUCCESSFUL );
-
- /* Return output parameters */
-
- result = r.status;
+ struct policy_handle policy;
+
+ if ( !pol )
+ return NT_STATUS_NO_MEMORY;
+
+ memcpy( &policy, pol, sizeof(policy) );
- if (NT_STATUS_IS_OK(result)) {
#ifdef __INSURE__
- SAFE_FREE(pol->marker);
+ SAFE_FREE(pol->marker);
#endif
- *pol = r.pol;
- }
- return result;
+ return rpccli_lsa_Close( cli, mem_ctx, &policy );
}
/** Lookup a list of sids */