+
     6gH  c                   s    ^ RI t ^ RI5 ^ RIt]P                  ! RRR7      t]P                  t^ RI5 ^ RIHt  ! R R]4      tR# )	    N)Z*zsetroubleshoot-pluginsT)Zfallback)Pluginc                   s|   a  ] tR t^t o ]! R4      t]! R4      tRtRtRt	Rt
RtRtR	 tR
 tR tR tR tR tRtV tR# )pluginzX
    SELinux is preventing $SOURCE_PATH from creating an executable memory mapping.
    a  
    The $SOURCE application attempted to create an anonymous executable memory mapping,
    or a writable executable file mapping. This is a potential security problem. Most
    applications do not need this permission. The 
    <a href="http://people.redhat.com/drepper/selinux-mem.html">SELinux Memory Protection Tests</a>
    web page explains why SELinux intervened and how to work around it if needed.
    z6If this issue occurred during normal system operation.zIThis alert could be a serious issue and your system could be compromised.z9Contact your security administrator and report this issuezIf you know why $SOURCE needs to map a memory region that is both executable and writable and understand that this is a potential security problem.zFYou can allow the mapping by switching one of the following booleans: zuFollow the advice of the catchall_boolean plugin, otherwise contact your security administrator and report this issuec                s    V P                   # )N)problem_descriptionselfavcZargs   &&&2/usr/share/setroubleshoot/plugins/allow_execmem.pyget_problem_descriptionZplugin.get_problem_description5   s    '''    c                R    \        V4      ^ 8  d   V P                  # V P                  # r    )lenif_textunsafe_if_textr   r   r   get_if_textZplugin.get_if_text8   #    t9q=<<"""r
   c                s~    \        V4      ^ 8  d#   V P                  RP                  V4      ,           # V P                  # )r    z, )r   	then_textZjoinunsafe_then_textr   r   r   get_then_textZplugin.get_then_text=   s0    t9q=>>DIIdO33$$$r
   c                r   r   )r   do_textunsafe_do_textr   r   r   get_do_textZplugin.get_do_textB   r   r
   c                sz    \         P                  ! V \        4       R V n        RV n        V P                  ^
4       R# )FTN)r   __init____name__fixable
report_bugZset_priority)r   s   &r   r   Zplugin.__init__G   s,    X&"r
   c                s    ^ RI pVP                  R.4      '       d\   \        VP                  4      ^ 8  d2   T P	                  VP                   Uu. uF  q3^ ,          NK  	  up4      # V P	                  4       # R# u upi )r    NZexecmem)
subprocessZhas_any_access_inr   ZboolsZreport)r   r   r   Zbs   &&  r   analyzeZplugin.analyzeM   sb      )--399~!{{#))#<)QaDD)#<=={{}$ $=s   A:)r   r   N)r   Z
__module__Z__qualname__Z__firstlineno___Zsummaryr   r   r   r   r   r   r   r	   r   r   r   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      sq       	G   	 NNbPN dGXI FG(#
%
#
 r
   r   )	ZselinuxZstatZgettextZtranslationr   Zsetroubleshoot.utilZsetroubleshoot.Pluginr   r   ) r
   r   <module>r      s@   &    84H ! (9V 9r
   