
    b                     ~    d Z ddlZddlZddlmZmZ ddlmZ ddlm	Z	m
Z
 ddlZ G d dej        j                  ZdS )z;
Detect null pointer exception in /source3/smbd/sessetup.c
    N)NetLIBNET_JOIN_AUTOMATIC)DONT_USE_KERBEROS)NTSTATUSErrorntstatusc                   4     e Zd Z fdZ fdZd Zd Z xZS )NetJoinNoSpnegoTestsc                    t          t          |                                            t          j        d         | _        t          j        d         | _        |                                 | _        | j        	                    d| j
                   | j        	                    d| j
                   | j        	                    d| j
                   d S )NDOMAINSERVERzprivate dirzlock dirzstate directory)superr	   setUposenvirondomainserverget_loadparmlpsettempdirself	__class__s    @/usr/lib/python3/dist-packages/samba/tests/net_join_no_spnego.pyr   zNetJoinNoSpnegoTests.setUp!   s    "D))//111j*j*##%%M4<000J---%t|44444    c                 V    t          t          |                                            d S )N)r   r	   tearDownr   s    r   r   zNetJoinNoSpnegoTests.tearDown*   s&    "D))2244444r   c                 z   | j                             dd           | j                             dd           d}d}|                     |                                 t                    }t          || j         | j                  }	 |                    | j        |t          |	          \  }}}nx# t          $ rk}t          j        |j        d
                   j        }	|	t          j        k    r|                     d           n|	t          j        k    rY d }~d S  Y d }~nd }~ww xY w|                     d           d S )Nclient ipc max protocolNT1client use spnegonoNetJoinNoSpnego
abcdefghijtemplatekerberos_stater   machinepassr   Connection failurez)Shoud have rejected NTLMv2 without SPNEGO)r   r   insta_credsget_credentialsr   r   r   join_memberr   r   r   ctypesc_uint32argsvaluer   !NT_STATUS_CONNECTION_DISCONNECTEDfailNT_STATUS_ACCESS_DENIED
r   netbios_namer*   credsnetjoin_passwordsiddomain_nameecodes
             r   test_net_join_no_spnegoz,NetJoinNoSpnegoTests.test_net_join_no_spnego-   s\   -u555'...(#  $*>*>*@*@0A ! C C %555	03\+@' 1@ 1) 1)-]C  	 	 	?16!9--3DxAAA		.////999	 0////	 			=>>>>>s   'B. .
D#8ADDD#c                    | j                             dd           | j                             dd           | j                             dd           d}d}|                     |                                 t                    }t          || j         | j        	          }	 |                    | j        |t          |
          \  }}}n\# t          $ rO}t          j        |j        d                   j        }	|	t          j        k    r|                     d            d }~ww xY wt%          j        t$          j                            | j        d                     d S )Nr   r    r!   r"   zclient ntlmv2 authr#   r$   r%   r(   r)   r   r+   zsecrets.ldb)r   r   r,   r-   r   r   r   r.   r   r   r   r/   r0   r1   r2   r   r3   r4   r   unlinkpathjoinr   r6   s
             r   test_net_join_no_spnego_ntlmv1z3NetJoinNoSpnegoTests.test_net_join_no_spnego_ntlmv1E   sR   -u555'...($///(#  $*>*>*@*@0A ! C C %555
	03\+@' 1@ 1) 1)-]C  	 	 	?16!9--3DxAAA		.///		
 		"',,t|];;<<<s   !'C	 	
D"A
DD")__name__
__module____qualname__r   r   r?   rD   __classcell__)r   s   @r   r	   r	      so        5 5 5 5 55 5 5 5 5? ? ?0      r   r	   )__doc__samba.testssambar   	samba.netr   r   samba.credentialsr   r   r   r/   testsTestCaseInTempDirr	    r   r   <module>rQ      s   &      				 0 0 0 0 0 0 0 0 / / / / / / ) ) ) ) ) ) ) ) > > > > >5;8 > > > > >r   