/* Unix SMB/CIFS implementation. dcerpc torture tests Copyright (C) Andrew Tridgell 2003 Copyright (C) Andrew Bartlett transport->socket->event.ctx); if (lsa_pipe == NULL) { d_printf("dcerpc_pipe_init failed\n"); goto done; } status = dcerpc_pipe_open_smb(lsa_pipe->conn, cli->tree, "\\lsarpc"); if (!NT_STATUS_IS_OK(status)) { d_printf("dcerpc_pipe_open_smb failed: %s\n", nt_errstr(status)); goto done; } status = dcerpc_bind_auth_none(lsa_pipe, &dcerpc_table_lsarpc); if (!NT_STATUS_IS_OK(status)) { d_printf("dcerpc_bind_auth_none failed: %s\n", nt_errstr(status)); goto done; } openpolicy.in.system_name =talloc_asprintf( mem_ctx, "\\\\%s", dcerpc_server_name(lsa_pipe)); ZERO_STRUCT(objectattr); openpolicy.in.attr = &objectattr; openpolicy.in.access_mask = SEC_GENERIC_WRITE; openpolicy.out.handle = &handle; status = dcerpc_lsa_OpenPolicy2(lsa_pipe, mem_ctx, &openpolicy); if (!NT_STATUS_IS_OK(status)) { d_printf("dcerpc_lsa_OpenPolicy2 failed: %s\n", nt_errstr(status)); goto done; } close.in.handle = &handle; close.out.handle = &handle; status = dcerpc_lsa_Close(lsa_pipe, mem_ctx, &close); if (!NT_STATUS_IS_OK(status)) { d_printf("dcerpc_lsa_Close failed: %s\n", nt_errstr(status)); goto done; } session2 = smbcli_session_init(cli->transport, mem_ctx, False); if (session2 == NULL) { d_printf("smbcli_session_init failed\n"); goto done; } anon_creds = cli_credentials_init(mem_ctx); if (anon_creds == NULL) { d_printf("cli_credentials_init failed\n"); goto done; } cli_credentials_set_conf(anon_creds); cli_credentials_set_anonymous(anon_creds); setup.in.sesskey = cli->transport->negotiate.sesskey; setup.in.capabilities = cli->transport->negotiate.capabilities; setup.in.workgroup = ""; setup.in.credentials = anon_creds; status = smb_composite_sesssetup(session2, &setup); if (!NT_STATUS_IS_OK(status)) { d_printf("anon session setup failed: %s\n", nt_errstr(status)); goto done; } tmp = cli->tree->session; cli->tree->session = session2; status = dcerpc_lsa_OpenPolicy2(lsa_pipe, mem_ctx, &openpolicy); if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) { d_printf("dcerpc_lsa_OpenPolicy2 with wrong vuid gave %s, " "expected NT_STATUS_INVALID_HANDLE\n", nt_errstr(status)); goto done; } ret = True; done: talloc_free(mem_ctx); return ret; }