VULN_CHECK_I913V6 /i rddlZddlZddlZdZdZgdZdZ ddlZiZejdkrded<ejefd d ied diZ e jZ d ZddZddZddZdaddZddZdZddZdZddZy# ddl Z ee jd <n#e$rddlZeejd <YnwxYwY_xYw)Nz_admin$z_role$) get_all_interfacesget_interfaces_from_xml get_adminget_userget_interface_dictget_interface_format_text!get_interface_compile_format_text get_xml_fileinterface_compile_testzselinux-python)Tunicode localedirz/usr/share/localefallback_clg}t|}|jD]}|j||S)z' Get all interfaces from given xml file)rkeysappend)pathinterfaces_listidictks 7/usr/lib/python3.12/site-packages/sepolicy/interface.pyrr5s5O t $E ZZ\q! cXddlm}g}|s |}|St|}t|}|S)Nr) get_methods)sepolicyrr r)rrall_interfacesxml_paths rrr>s8$N $  %0: rc, g}|rR t|}t|}|jD]%}|jds|j |' |StjD]7}|jds|j |jdd9|S#t $rb}t jj|jjdt|dt jdYd}~|Sd}~wwxYw)z? Get all domains with an admin interface from installed policy._admin:  Nr)r rrendswithrIOErrorsysstderrwrite __class____name__strexitrrsplit)r admin_listrrreis rrrJs\J  #D)H&x0EZZ\::h'%%a("  %%'Azz(#!!!''("3A"67(   JJ  1;;+?+?QH I HHQKK  s:B(B(( D1ADDc g}|ro t|}t|}|jD]B}|jdsd|ddzt j vs2|j |D |St jD]_}t!j"dt$z|}t'|d kDs/d|d zt j vsL|j |d a|S#t$rb}tjj|jjdt|dtjdYd}~|Sd}~wwxYw) z1 Get all domains with SELinux user role interface_rolez %s_exec_tNr!r"r#z(.*)%sr)r rrr$r get_all_typesrr%r&r'r(r)r*r+r,rrefindallUSER_TRANSITION_INTERFACElen)r trans_listrrrr/r0ms rrr`s*`J  #D)H&x0EZZ\::g&$q"v-(2H2H2JJ"))!,"  %%'A 8&??CA1vz1%)?)?)AA%%ad+ (   JJ  1;;+?+?QH I HHQKK  s$:C-C-C-- E6AEEc ddl}ddl}trtSiag}d}||z }|dz } |jj |r&|j j j|}n%|j j j|}|jdD]}|jdD]}|jdD]n}|jdD]"} |j| jd$||jd jdgt|jd<g}p|jd D]n}|jdD]"} |j| jd$||jd jd gt|jd<g}p " tS#t$rYtSwxYw) NrzZ z layermodule interfaceparamnamesummarytemplate)osxml.etree.ElementTreeinterface_dictrisfileetree ElementTreeparse fromstringr6iterrgetfindtextr%) rrCxml param_listrtreelr:r0r/s rrr{s  NJH H H  77>>$ 99((..t4D99((33H=Dg&AYYx( ,AYYw/"))!%%-807AAFF9DUDZDZ]h6iNAEE&M3!#J -  +AYYw/"))!%%-807AAFF9DUDZDZ]g6hNAEE&M3!#J , )'     sFG GGc t|}|ddj||dddj||djd}|S)N(, rz)  r#r")rjoinr-)r>rrinterface_texts rrrsS t $E$-tyyy9I!9L/MsxxX]^gXhijXkXqXqrvXwOxyN rcddlm}g}||dD]7}|j|j||ddj |d}9S)Nr# test_modulerrTrUz) ) templatesr[r dict_valuesrW)interfaces_dictr>r[ param_tmpr0rXs rr r sR&I Y ' *0034'0$))I2FG+ rc|ddlm}d}|tjd||jz }|t ||z }|S)Nr#rZ TEMPLATETYPE)r\r[r5subte_test_moduler )r>rr@r[tes rgenerate_compile_terfs>& B"&&{'A'A BBB +E9 ==B Ircddl} ddlm}|j j |dz}|j j|jdd}|d||zz\}}|dk7rWtjjdtjjd|ztjd y|S#t$r ddlm}YwxYw) z; Returns xml format of interfaces for given .if policy filerNgetstatusoutput/.zN/usr/bin/python3 /usr/share/selinux/devel/include/support/segenxml.py -w -m %sz- Could not process selected interface file. z %sr#) rCcommandsri ImportError subprocessrdirnamebasenamer-r&r'r(r,)if_filerCribasedirfilenamercoutputs rr r s /,ggoog&,Gww(..s3A6H !qu|@HvH"IJJB Qw JK &)    /./sCCCc~gd}dg} ddlm}ddl}ddddd }t |}|j d d|vs||d |vsttd |z t|d d}|jt|||j|d|dz\} } | dk7rJtjj| tjjtd|z|j!D]/} |j"j%| s|j'| 1ytjjtd|zy#t$r ddlm}YiwxYw#t$r7} tjjtd|| fzYd} ~ d} ~ wwxYw)N)userdomkernelcorenetfilesdevrBrrhzcompiletest.ppzcompiletest.tezcompiletest.fczcompiletest.if)pprefcifrzCompiling %s interfacerewz,make -f /usr/share/selinux/devel/Makefile %sr|z Compile test for %s failed. z% Compile test for %s has not run. %s z, Compiling of %s interface is not supported.)rlrirmrnrCrr-printropenr(rfcloser&r'EnvironmentErrorvaluesrexistsremove) r>rexclude_interfacesexclude_interface_typerirC policy_filesrfdrtrur/vs rr r sI(\/,*2BJZbrsL t $E OOC  #'9 9U9=Ma=PTj=j a()I56 \l4(#.B HH(E: ; HHJ()WZfgkZl)lmJBQw   (   #D!E !QR$$&Aww~~a  ! ' JKiWX1 /../"  \ JJ  QHIYXYNZ [ [ \s*E&BE<&E98E9< F<-F77F<)ra)z#/usr/share/selinux/devel/policy.xml) compiletest)r5r&rADMIN_TRANSITION_INTERFACEr7__all__PROGNAMEgettextkwargs version_info translationtrbuiltinsr+__dict__rm __builtin__r rrrrrErrr rfr r rrrs, &$ W , F $ yH #1 # #" #A A ,0'T$YK,,!$# ,$+ S!,s/?A??B6BB6B1.B60B11B6