From a3074521d408acc4de8a6f810a99f0d6b0c0e324 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 17 Sep 2013 13:15:38 +0200 Subject: [PATCH] s4:torture/samba3rpc: let rpc.authcontext be more robust against low level changes (part2) We now use smbXcli_conn_is_connected() and dcerpc_binding_handle_is_connected() to verify only the dcerpc layer got an error. The expected error is EIO mapped to NT_STATUS_IO_DEVICE_ERROR. NT_STATUS_INVALID_HANDLE should only be visible at the SMB layer, but we keep this as allowed return value for now, until the dcerpc layer is fixed. Signed-off-by: Stefan Metzmacher Reviewed-by: Michael Adam Reviewed-by: Andrew Bartlett --- source4/torture/rpc/samba3rpc.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/source4/torture/rpc/samba3rpc.c b/source4/torture/rpc/samba3rpc.c index 6c96b9d7cf..dbed3efdb2 100644 --- a/source4/torture/rpc/samba3rpc.c +++ b/source4/torture/rpc/samba3rpc.c @@ -186,18 +186,26 @@ bool torture_bind_authcontext(struct torture_context *torture) status = dcerpc_lsa_OpenPolicy2_r(lsa_handle, mem_ctx, &openpolicy); - smb1cli_session_set_id(tmp->smbXcli, tmp_vuid); - cli->tree->session = tmp; - talloc_free(lsa_pipe); - lsa_pipe = NULL; + torture_assert(torture, smbXcli_conn_is_connected(cli->transport->conn), + "smb still connected"); + torture_assert(torture, !dcerpc_binding_handle_is_connected(lsa_handle), + "dcerpc disonnected"); - if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) { + if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) { torture_comment(torture, "dcerpc_lsa_OpenPolicy2 with wrong vuid gave %s, " - "expected NT_STATUS_INVALID_HANDLE\n", + "expected NT_STATUS_IO_DEVICE_ERROR\n", nt_errstr(status)); - goto done; + status = NT_STATUS_IO_DEVICE_ERROR; } + torture_assert_ntstatus_equal(torture, status, NT_STATUS_IO_DEVICE_ERROR, + "lsa io device error"); + + smb1cli_session_set_id(tmp->smbXcli, tmp_vuid); + cli->tree->session = tmp; + talloc_free(lsa_pipe); + lsa_pipe = NULL; + ret = true; done: talloc_free(mem_ctx); -- 2.34.1