2
0
mirror of https://gitlab.com/apparmor/apparmor synced 2025-09-02 15:25:27 +00:00

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