const char *dc_name,
const struct sockaddr_storage *dc_ss,
struct rpc_pipe_client **pipe_ret,
+ TALLOC_CTX *mem_ctx,
struct netlogon_creds_cli_context **creds_ret)
{
TALLOC_CTX *frame = talloc_stackframe();
*cli_ret = cli;
*pipe_ret = netlogon_pipe;
- *creds_ret = netlogon_creds;
+ *creds_ret = talloc_move(mem_ctx, &netlogon_creds);
TALLOC_FREE(frame);
return NT_STATUS_OK;
const struct sockaddr_storage *dc_ss)
{
+ TALLOC_CTX *frame = talloc_stackframe();
struct netr_SamInfo3 *info3 = NULL;
struct cli_state *cli = NULL;
struct rpc_pipe_client *netlogon_pipe = NULL;
dc_name,
dc_ss,
&netlogon_pipe,
+ frame,
&netlogon_creds);
}
if ( !NT_STATUS_IS_OK(nt_status) ) {
DEBUG(0,("domain_client_validate: Domain password server not available.\n"));
+ TALLOC_FREE(frame);
if (NT_STATUS_EQUAL(nt_status, NT_STATUS_ACCESS_DENIED)) {
return NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE;
}
these pointers are no longer valid..... */
cli_shutdown(cli);
+ TALLOC_FREE(frame);
return nt_status;
}