I have the same issue with an enabled firefox profile on Ubuntu 18.04.2

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apparmor in Ubuntu.
https://bugs.launchpad.net/bugs/1819741

Title:
  aa-genprof fails on disabled profile

Status in AppArmor:
  Fix Released
Status in apparmor package in Ubuntu:
  Confirmed

Bug description:
  Hi,

  I'm following the tutorial at
  https://ubuntuforums.org/showthread.php?t=1008906&p=6353894#post6353894
  based on my Ubuntu 18.10 as-is presently.

  When doing sudo aa-genprof firefox, I get the following error message:

  Traceback (most recent call last):
    File "/usr/sbin/aa-genprof", line 110, in <module>
      apparmor.autodep(program)
    File "/usr/lib/python3/dist-packages/apparmor/aa.py", line 590, in autodep
      profile_data = get_profile(pname)
    File "/usr/lib/python3/dist-packages/apparmor/aa.py", line 500, in 
get_profile
      inactive_profile[prof_name][prof_name].pop('filename')
  AttributeError: 'ProfileStorage' object has no attribute 'pop'

  
  So much as I can see, I have a usr.bin.firefox profile both in apparmor.d and 
in the disable directory.
  The full trace is below:
  ----

  AttributeError
  Python 3.6.7: /usr/bin/python3
  Tue Mar 12 18:23:07 2019

  A problem occurred in a Python script.  Here is the sequence of
  function calls leading up to the error, in the order they occurred.

   /usr/sbin/aa-genprof in <module>()
    105 
    106 profile_filename = apparmor.get_profile_filename(program)
    107 if os.path.exists(profile_filename):
    108     apparmor.helpers[program] = 
apparmor.get_profile_flags(profile_filename, program)
    109 else:
    110     apparmor.autodep(program)
    111     apparmor.helpers[program] = 'enforce'
    112 
    113 if apparmor.helpers[program] == 'enforce':
    114     apparmor.complain(program)
  apparmor = <module 'apparmor.aa' from 
'/usr/lib/python3/dist-packages/apparmor/aa.py'>
  apparmor.autodep = <function autodep>
  program = '/usr/lib/firefox/firefox.sh'

   /usr/lib/python3/dist-packages/apparmor/aa.py in 
autodep(bin_name='/usr/lib/firefox/firefox.sh', 
pname='/usr/lib/firefox/firefox.sh')
    585     else:
    586         bin_full = pname  # for named profiles
    587 
    588     pname = bin_full
    589     read_inactive_profiles()
    590     profile_data = get_profile(pname)
    591     # Create a new profile if no existing profile
    592     if not profile_data:
    593         profile_data = create_new_profile(pname)
    594     file = get_profile_filename(pname)
  profile_data undefined
  global get_profile = <function get_profile>
  pname = '/usr/lib/firefox/firefox.sh'

   /usr/lib/python3/dist-packages/apparmor/aa.py in 
get_profile(prof_name='/usr/lib/firefox/firefox.sh')
    495             aaui.UI_Important(_('WARNING: Error fetching profiles from 
the repository'))
    496     inactive_profile = get_inactive_profile(prof_name)
    497     if inactive_profile:
    498         uname = 'Inactive local profile for %s' % prof_name
    499         inactive_profile[prof_name][prof_name]['flags'] = 'complain'
    500         inactive_profile[prof_name][prof_name].pop('filename')
    501         profile_hash[uname]['username'] = uname
    502         profile_hash[uname]['profile_type'] = 'INACTIVE_LOCAL'
    503         profile_hash[uname]['profile'] = 
serialize_profile(inactive_profile[prof_name], prof_name, None)
    504         profile_hash[uname]['profile_data'] = inactive_profile
  inactive_profile = {'/usr/lib/firefox/firefox.sh': defaultdict(<function 
hasher at 0x7f8e214ad9d8>,...torage.ProfileStorage object at 0x7f8e2088bc18>})}
  prof_name = '/usr/lib/firefox/firefox.sh'
  ].pop undefined
  AttributeError: 'ProfileStorage' object has no attribute 'pop'
      __cause__ = None
      __class__ = <class 'AttributeError'>
      __context__ = None
      __delattr__ = <method-wrapper '__delattr__' of AttributeError object>
      __dict__ = {}
      __dir__ = <built-in method __dir__ of AttributeError object>
      __doc__ = 'Attribute not found.'
      __eq__ = <method-wrapper '__eq__' of AttributeError object>
      __format__ = <built-in method __format__ of AttributeError object>
      __ge__ = <method-wrapper '__ge__' of AttributeError object>
      __getattribute__ = <method-wrapper '__getattribute__' of AttributeError 
object>
      __gt__ = <method-wrapper '__gt__' of AttributeError object>
      __hash__ = <method-wrapper '__hash__' of AttributeError object>
      __init__ = <method-wrapper '__init__' of AttributeError object>
      __init_subclass__ = <built-in method __init_subclass__ of type object>
      __le__ = <method-wrapper '__le__' of AttributeError object>
      __lt__ = <method-wrapper '__lt__' of AttributeError object>
      __ne__ = <method-wrapper '__ne__' of AttributeError object>
      __new__ = <built-in method __new__ of type object>
      __reduce__ = <built-in method __reduce__ of AttributeError object>
      __reduce_ex__ = <built-in method __reduce_ex__ of AttributeError object>
      __repr__ = <method-wrapper '__repr__' of AttributeError object>
      __setattr__ = <method-wrapper '__setattr__' of AttributeError object>
      __setstate__ = <built-in method __setstate__ of AttributeError object>
      __sizeof__ = <built-in method __sizeof__ of AttributeError object>
      __str__ = <method-wrapper '__str__' of AttributeError object>
      __subclasshook__ = <built-in method __subclasshook__ of type object>
      __suppress_context__ = False
      __traceback__ = <traceback object>
      args = ("'ProfileStorage' object has no attribute 'pop'",)
      with_traceback = <built-in method with_traceback of AttributeError object>

  The above is a description of an error in a Python program.  Here is
  the original traceback:

  Traceback (most recent call last):
    File "/usr/sbin/aa-genprof", line 110, in <module>
      apparmor.autodep(program)
    File "/usr/lib/python3/dist-packages/apparmor/aa.py", line 590, in autodep
      profile_data = get_profile(pname)
    File "/usr/lib/python3/dist-packages/apparmor/aa.py", line 500, in 
get_profile
      inactive_profile[prof_name][prof_name].pop('filename')
  AttributeError: 'ProfileStorage' object has no attribute 'pop'

To manage notifications about this bug go to:
https://bugs.launchpad.net/apparmor/+bug/1819741/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to