Hello,

while using aa-logprof (from latest bzr), I managed to crash it with two 
totally different backtraces:

1)

# python3 aa-logprof
Protokolleinträge von /var/log/audit/audit.log werden eingelesen.
AppArmor-Profile in /etc/apparmor.d werden aktualisiert.
Traceback (most recent call last):
  File "aa-logprof", line 52, in <module>
    apparmor.do_logprof_pass(logmark)
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 2275, in 
do_logprof_pass
    handle_children('', '', root)
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 1243, in 
handle_children
    parent_uses_ld_xxx = check_for_LD_XXX(profile)
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 126, in 
check_for_LD_XXX
    for line in f_in:
  File "/usr/lib64/python3.4/codecs.py", line 704, in __next__
    return next(self.reader)
  File "/usr/lib64/python3.4/codecs.py", line 635, in __next__
    line = self.readline()
  File "/usr/lib64/python3.4/codecs.py", line 548, in readline
    data = self.read(readsize, firstline=True)
  File "/usr/lib64/python3.4/codecs.py", line 494, in read
    newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf8 in position 40: 
ordinal not in range(128)


This is caused by this log line:

type=AVC msg=audit(1407865079.883:215): apparmor="ALLOWED" operation="exec" 
profile="/usr/lib64/firefox/plugin-container" 
name="/usr/lib64/gstreamer-0.10/gst-plugin-scanner" pid=11832 comm="Browser" 
requested_mask="x" denied_mask="x" fsuid=1000 ouid=0 
target="/usr/lib64/firefox/plugin-container//null-1"

but it also seems to require my set of profiles (at least some of them).
aa-logprof doesn't crash if I run it with   -d /var/lib/empty



2) 

# python3 aa-logprof -f /var/log/audit/audit.log.1
[...]
= Changed Local Profiles =

The following local profiles were changed. Would you like to save them?

 [1 - /usr/bin/boomaga]
  2 - /usr/sbin/nscd 
(S)ave Changes / Save Selec(t)ed Profile / [(V)iew Changes] / View Changes b/w 
(C)lean profiles / Abo(r)t
    [... pressed 'v'...]
Traceback (most recent call last):
  File "aa-logprof", line 52, in <module>
    apparmor.do_logprof_pass(logmark)
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 2292, in 
do_logprof_pass
    save_profiles()
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 2373, in 
save_profiles
    newprofile = serialize_profile_from_old_profile(aa[which], which, '')
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 4217, in 
serialize_profile_from_old_profile
    data += write_methods[segs](write_prof_data[name], int(depth / 2))
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 3606, in 
write_paths
    data += write_path_rules(prof_data, depth, 'allow')
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 3553, in 
write_path_rules
    user, other = split_mode(mode)
  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aamode.py", line 212, in 
split_mode
    other = mode - user
TypeError: unsupported operand type(s) for -: 'collections.defaultdict' and 
'set'


BTW: Using 'c' instead of 'v' lets me view the differences without a crash.


Regards,

Christian Boltz
-- 
... wenn man schon Spams und Viren nur unvollkommen filtern,
wie will man dann die Windoof Experten fo^Hiltern? ;-)
[Paul Foerster in suse-laptop]


-- 
AppArmor mailing list
AppArmor@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/apparmor

Reply via email to