1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-02 09:47:23 +03:00

py:dcerpc/raw_protocol: add test_assoc_group_fail3()

This demonstrates that assoc groups are only shared on the
same transport (endpoint).

BUG: https://bugzilla.samba.org/show_bug.cgi?id=7113
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11892

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Stefan Metzmacher 2018-12-12 13:43:45 +01:00 committed by Jeremy Allison
parent c192dc1c9d
commit a8feb55631
2 changed files with 46 additions and 0 deletions

View File

@ -5015,6 +5015,51 @@ class TestDCERPC_BIND(RawDCERPCTest):
conn2._disconnect("End of Test")
return
def test_assoc_group_fail3(self):
abstract = samba.dcerpc.mgmt.abstract_syntax()
transfer = base.transfer_syntax_ndr()
(ctx1, ack1) = self.prepare_presentation(abstract, transfer,
context_id=1, return_ack=True)
# assoc groups are per transport
connF = self.second_connection(primary_address="\\pipe\\lsass",
transport_creds=self.get_user_creds())
tsfF_list = [transfer]
ctxF = samba.dcerpc.dcerpc.ctx_list()
ctxF.context_id = 0xF
ctxF.num_transfer_syntaxes = len(tsfF_list)
ctxF.abstract_syntax = abstract
ctxF.transfer_syntaxes = tsfF_list
ack = connF.do_generic_bind(ctx=ctxF, assoc_group_id=ack1.u.assoc_group_id,
nak_reason=dcerpc.DCERPC_BIND_NAK_REASON_NOT_SPECIFIED)
# wait for a disconnect
rep = connF.recv_pdu()
self.assertIsNone(rep)
connF.assertNotConnected()
conn2 = self.second_connection()
(ctx2, ack2) = conn2.prepare_presentation(abstract, transfer,
assoc_group_id=ack1.u.assoc_group_id,
context_id=2, return_ack=True)
inq_if_ids = samba.dcerpc.mgmt.inq_if_ids()
self.do_single_request(call_id=1, ctx=ctx1, io=inq_if_ids)
conn2.do_single_request(call_id=1, ctx=ctx2, io=inq_if_ids)
conn2.do_single_request(call_id=1, ctx=ctx1, io=inq_if_ids,
fault_pfc_flags=(
samba.dcerpc.dcerpc.DCERPC_PFC_FLAG_FIRST |
samba.dcerpc.dcerpc.DCERPC_PFC_FLAG_LAST |
samba.dcerpc.dcerpc.DCERPC_PFC_FLAG_DID_NOT_EXECUTE),
fault_status=dcerpc.DCERPC_NCA_S_UNKNOWN_IF,
fault_context_id=0)
self.do_single_request(call_id=1, ctx=ctx1, io=inq_if_ids)
conn2.do_single_request(call_id=1, ctx=ctx2, io=inq_if_ids)
conn2._disconnect("End of Test")
return
def _test_krb5_hdr_sign_delayed1(self, do_upgrade):
auth_type = dcerpc.DCERPC_AUTH_TYPE_KRB5
auth_level = dcerpc.DCERPC_AUTH_LEVEL_INTEGRITY

View File

@ -0,0 +1 @@
^samba.tests.dcerpc.raw_protocol.*.TestDCERPC_BIND.test_assoc_group_fail3