Let the apparmor.fail error handler print to stderr

The patch also switches to using error() instead of a plain print() for
AppArmorException, which means prefixing the error message with 'ERROR: '



References: https://bugs.launchpad.net/apparmor/+bug/1521400


Acked-by: Tyler Hicks <tyhicks@canonical.com> for trunk and 2.10.
This commit is contained in:
Christian Boltz 2015-12-16 11:59:10 +01:00
parent 67eb25939d
commit 2f70c5a1bc

View file

@ -8,12 +8,16 @@
#
# ------------------------------------------------------------------
from __future__ import print_function # needed in py2 for print('...', file=sys.stderr)
import cgitb
import os
import sys
import tempfile
import traceback
from apparmor.common import error
#
# Exception handling
#
@ -27,8 +31,8 @@ def handle_exception(*exc_info):
(ex_cls, ex, tb) = exc_info
if ex_cls.__name__ == 'AppArmorException': # I didn't find a way to get this working with isinstance() :-/
print('')
print(ex.value)
print('', file=sys.stderr)
error(ex.value)
else:
(fd, path) = tempfile.mkstemp(prefix='apparmor-bugreport-', suffix='.txt')
file = os.fdopen(fd, 'w')
@ -40,13 +44,13 @@ def handle_exception(*exc_info):
file.write('Please consider reporting a bug at https://bugs.launchpad.net/apparmor/\n')
file.write('and attach this file.\n')
print(''.join(traceback.format_exception(*exc_info)))
print('')
print('An unexpected error occoured!')
print('')
print('For details, see %s' % path)
print('Please consider reporting a bug at https://bugs.launchpad.net/apparmor/')
print('and attach this file.')
print(''.join(traceback.format_exception(*exc_info)), file=sys.stderr)
print('', file=sys.stderr)
print('An unexpected error occoured!', file=sys.stderr)
print('', file=sys.stderr)
print('For details, see %s' % path, file=sys.stderr)
print('Please consider reporting a bug at https://bugs.launchpad.net/apparmor/', file=sys.stderr)
print('and attach this file.', file=sys.stderr)
def enable_aa_exception_handler():
'''Setup handle_exception() as exception handler'''