aa-complain exits 0 when path not found

Bug #1564625 reported by Chris Holcombe
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
AppArmor
Confirmed
Undecided
Unassigned
One Hundred Papercuts
Confirmed
High
Unassigned
apparmor (Ubuntu)
Confirmed
High
Unassigned

Bug Description

I'm using juju to deploy apparmor profiles and I've found that when the apparmor path isn't found the command still exists 0. If this exited with a non zero status I could detect I had a problem in my code and take action :)

root@ip-172-31-29-100:/etc/apparmor.d/local# aa-complain foo
Can't find foo in the system path list. If the name of the application
is correct, please run 'which foo' as a user with correct PATH
environment set up in order to find the fully-qualified path and
use the full path as parameter.
root@ip-172-31-29-100:/etc/apparmor.d/local# echo $?
0

Some context on the environment:
root@ip-172-31-29-100:/etc/apparmor.d/local# cat /etc/issue
Ubuntu 14.04.4 LTS \n \l

tags: added: trusty
description: updated
tags: added: xenial
Changed in apparmor:
status: New → Confirmed
Changed in apparmor (Ubuntu):
status: New → Confirmed
Christian Boltz (cboltz)
tags: added: aa-tools
Changed in apparmor (Ubuntu):
importance: Undecided → Medium
importance: Medium → High
Changed in hundredpapercuts:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Chris Holcombe (xfactor973) wrote :

So I dug into this with pydb and figured out what's going on. utils/apparmor/tools.py lines 79 and 81 need to be changed to fatal_error(message). I tried both fatal_error and also sys.exit(1) and aa-complain seems to ignore it and still exit 0. I'm not exactly sure why though. It seems there's a custom sys exit handler in place that is messing with it. Does anyone know what I should change it to? I'll put in the change and the merge request :)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.