/usr/lib64/python2.6/site-packages/sepolgen
NameSizeModeActions
access.py116390644editdlrm
access.pyc126950644editdlrm
access.pyo126950644editdlrm
audit.py207060644editdlrm
audit.pyc205140644editdlrm
audit.pyo205140644editdlrm
classperms.py28010644editdlrm
classperms.pyc32000644editdlrm
classperms.pyo32000644editdlrm
defaults.py12870644editdlrm
defaults.pyc15160644editdlrm
defaults.pyo15160644editdlrm
interfaces.py165090644editdlrm
interfaces.pyc160510644editdlrm
interfaces.pyo160510644editdlrm
lex.py335860644editdlrm
lex.pyc201030644editdlrm
lex.pyo201030644editdlrm
matching.py86290644editdlrm
matching.pyc74860644editdlrm
matching.pyo74860644editdlrm
module.py72180644editdlrm
module.pyc85650644editdlrm
module.pyo85650644editdlrm
objectmodel.py65240644editdlrm
objectmodel.pyc47900644editdlrm
objectmodel.pyo47900644editdlrm
output.py50310644editdlrm
output.pyc45240644editdlrm
output.pyo45240644editdlrm
policygen.py144270644editdlrm
policygen.pyc140950644editdlrm
policygen.pyo140260644editdlrm
refparser.py290300644editdlrm
refparser.pyc344630644editdlrm
refparser.pyo344630644editdlrm
refpolicy.py264480644editdlrm
refpolicy.pyc442310644editdlrm
refpolicy.pyo442310644editdlrm
sepolgeni18n.py9120644editdlrm
sepolgeni18n.pyc4100644editdlrm
sepolgeni18n.pyo4100644editdlrm
util.py25730644editdlrm
util.pyc27220644editdlrm
util.pyo27220644editdlrm
yacc.py820750644editdlrm
yacc.pyc432200644editdlrm
yacc.pyo432200644editdlrm
__init__.py00644editdlrm
__init__.pyc1420644editdlrm
__init__.pyo1420644editdlrm
Edit: /usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyo (16051B)
Ñò Ô<*Xc @sîdZddkZddkZddkZddkZddkZddklZddkZddd„ƒYZ d„Z d„Z d„Z d „Z d „Zd dd „ƒYZd dd„ƒYZddd„ƒYZddd„ƒYZdS(s7 Classes for representing and manipulating interfaces. iÿÿÿÿN(t_tParamcBsSeZdZd„Zd„Zd„ZeeeƒZedd„ƒZd„Z RS(s; Object representing a paramater for an interface. cCs1d|_ti|_tiƒ|_t|_dS(Nt(t _Param__namet refpolicytSRC_TYPEttypetIdSett obj_classestTruetrequired(tself((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyt__init__&s  cCs1ti|ƒptd|ƒ‚n||_dS(NsName [%s] is not a param(taccesst is_idparamt ValueErrorR(R tname((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytset_name,scCs|iS(N(R(R ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytget_name1stfgetcCst|idƒS(i(tintR(R ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyt6scCs*d|iti|idi|iƒfS(Ns0t (RRt field_to_strRtjoinR(R ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyt__repr__8s( t__name__t __module__t__doc__R RRtpropertyRtnumR(((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyR"s   cCs:d}||joÝ||}||ijodS|tijp|tijo”|itijp|itijond}|o|ig}ng}x8ti|i|ƒD]!}|ti jo d}Pq±q±Wti|_qd}n)t ƒ}||_ ||_|||i <|o|ii |iƒn|S(Nii( RRRtTGT_TYPEt obj_classt itertoolstchainRt objectmodeltimplicitly_typed_objectsRRtadd(RRtavtparamstrettptavobjstobj((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyt__param_insert>s2   &      cCs!d}t}ti|iƒo0t|iti||ƒdjo d}qOnti|iƒo0t|iti||ƒdjo d}q’nti|i ƒo0t|i ti ||ƒdjo d}qÕnxE|i D]:}ti|ƒo$t|t ƒdjo d}qqßqßW|S(sjExtract the paramaters from an access vector. Extract the paramaters (in the form $N) from an access vector, storing them as Param objects in a dictionary. Some attempt is made at resolving conflicts with other entries in the dict, but if an unresolvable conflict is found it is reported to the caller. The goal here is to figure out how interface paramaters are actually used in the interface - e.g., that $1 is a domain used as a SRC_TYPE. In general an interface will look like this: interface(`foo', ` allow $1 foo : file read; ') This is simple to figure out - $1 is a SRC_TYPE. A few interfaces are more complex, for example: interface(`foo_trans',` domain_auto_trans($1,fingerd_exec_t,fingerd_t) allow $1 fingerd_t:fd use; allow fingerd_t $1:fd use; allow fingerd_t $1:fifo_file rw_file_perms; allow fingerd_t $1:process sigchld; ') Here the usage seems ambigious, but it is not. $1 is still domain and therefore should be returned as a SRC_TYPE. Returns: 0 - success 1 - conflict found ii( tFalseR Rtsrc_typeR,RRttgt_typeRR t OBJ_CLASStpermstPERM(R&R'R(t found_srctperm((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytav_extract_paramsjs"$""" cCs1ti|iƒot|itid|ƒSdS(N(R RtroleR,RtROLEtNone(R6R'((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytrole_extract_params£scs¶‡fd†}d}||itiƒo d}n||itiƒo d}n||itiƒo d}nti|i ƒo*t |i ti dˆƒo d}q²n|S(NcsOd}xB|D]:}ti|ƒo$t||dˆƒo d}qGq q W|S(Nii(R RR,R8(tsetRR(tx(R'(s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytextract_from_set¨sii( t src_typesRRt tgt_typesRRR0R Rt dest_typeR,t DEST_TYPER8(truleR'R<R(((R's9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyttype_rule_extract_params§s   cCsUd}xH|iD]=}ti|ƒo't|tid|ƒo d}qMqqW|S(Nii(targsR RR,RRR8(tifcallR'R(targ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytifcall_extract_paramsÀs tAttributeVectorcBseZd„Zd„ZRS(cCsd|_tiƒ|_dS(NR(RR tAccessVectorSet(R ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyR Ìs cCs|ii|ƒdS(N(R tadd_av(R R&((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyRIÐs(RRR RI(((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyRGËs t AttributeSetcBs#eZd„Zd„Zd„ZRS(cCs h|_dS(N(t attributes(R ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyR ÔscCs||i|is  cCs |iƒS(N(R(R ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyt__str__EscCsd|i|ifS(Ns(RR](R ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyRHsN( RRR8R R^RIRtRuR(((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyR\òs  4   t InterfaceSetcBs€eZd d„Zd„Zd„Zd„Zd„Zd„Zhd„Z d hd„Z d„Z d „Z d „Z d „ZRS( cCs(h|_h|_g|_||_dS(N(t interfacest tgt_type_mapt tgt_type_alltoutput(R Rz((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyR Ms   cCs&|io|ii|dƒndS(Ns (Rztwrite(R Rr((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytoSs cCsÀx¹|iiƒD]¨}|id|iƒx;|iiƒD]*}|id|iti|ifƒq:W|idƒ|ii ƒ}x1|D])}|idi |ƒƒ|idƒq‹WqWdS(Ns[InterfaceVector %s s%s:%s s] RWs ( RwtvaluesR{RR'RRRR tto_listR(R RYtivtparamtavlR&((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytto_fileWs( cCs¿d„}d}x‡|D]}|d }|ddjo(|o|i|ƒn||ƒ}q|o/|idƒ}ti|ƒ}|i|ƒqqW|o|i|ƒn|iƒdS(NcSs|dd!iƒ}t|ƒdjp|ddjotd|ƒ‚ntƒ}|d|_t|ƒdjodSx‚|dD]v}|idƒ}t|ƒdjotd|ƒ‚ntƒ}|d|_ti|d|_||i |iR&RRZ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyR‰ˆs   cCs t||ƒ}|i|ƒdS(N(R\Rˆ(R R`RKR…((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyR%–scCsTx6ti|iƒ|iƒƒD]}|i||ƒqW|i|ƒ|iƒdS(N(R!R"Rwt templatesR%texpand_ifcallsR‰(R theadersRzRKti((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyt add_headersšs  cCswti|ƒo\t|dƒ}|t|iƒjodS|i|d}t|tƒo|S|gSn|gSdS(Ni(R RRRPRCR8t isinstancetlist(R tidRDRRE((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyt map_param¡s c Cs0|i|i|ƒ}|djodS|i|i|ƒ}|djodS|i|i|ƒ}|djodStiƒ}xD|iD]9}|i||ƒ} | djoq‹q‹|i| ƒq‹Wt |ƒdjodSxI|D]A} x8|D]0} x'|D]} |i i | | | |ƒqWqôWqçWdS(Ni( R“R.R8R/R RRR1tupdateRPR R%( R R…R&RDR=R>Rt new_permsR4R)R.R/R ((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pyt map_add_av±s2      c CsN|dfg}|i|i}t|_xt|ƒdjo |idƒ\}}|i|i}||jo<x$|iD]}|i|||ƒqzW|ioq+q¬nx–|i ƒD]ˆ} | i |ijo|i t dƒƒdSy|| i } Wn0t j o$|i t d| i ƒƒq¹nX|i| | fƒq¹Wq+WdS(NiiÿÿÿÿsFound circular interface classs#Missing interface definition for %s(R8RwRR R_RPtpopR R–RltifnameR|RtKeyErrorRq( R R`t if_by_nametstackR…tcurt cur_ifcalltcur_ifvR&RDtnewif((s9/usr/lib64/python2.6/site-packages/sepolgen/interfaces.pytdo_expand_ifcallsÍs0      cCsyh}x3ti|iƒ|iƒƒD]}|||is"       , 9   Z