On Wednesday, May 28, 2014 03:33:06 PM Tony Jones wrote:
 This patch came from our L3 department.  AppArmor LSM is logging
using the
 common_lsm_audit() call but the audit userspace parsing code expects to see
 an SELinux tclass field. This patch doesn't address the lack of support for
 AppArmor in "aureport --avc".  Talking to Seth Arnold, Canonical apparently
 has patches for this; if this is true perhaps they can post for inclusion.
 
 Based-on-work-by: William Preston <wpreston(a)suse.com>
 Signed-off-by: Tony Jones <tonyj(a)suse.de> 
I was looking at this patch and was wondering something. Does AppArmor produce 
AUDIT_AVC events? If not, how does the code even get into parse_avc? IOW, is 
there another part of the patch missing in the switch statement that direct 
AUDIT_APPARMOR_*  events into parse_avc?
-Steve
 --- a/src/ausearch-parse.c      2014-05-21 14:45:22.000000000 +0200
 +++ b/src/ausearch-parse.c      2014-05-21 14:53:55.000000000 +0200
 @@ -1735,17 +1735,15 @@ static int parse_avc(const lnode *n, sea
 
         // Now get the class...its at the end, so we do things different
         str = strstr(term, "tclass=");
 -       if (str == NULL) {
 -               rc = 9;
 -               goto err;
 +       if (str) {
 +               str += 7;
 +               term = strchr(str, ' ');
 +               if (term)
 +                       *term = 0;
 +               an.avc_class = strdup(str);
 +               if (term)
 +                       *term = ' ';
         }
 -       str += 7;
 -       term = strchr(str, ' ');
 -       if (term)
 -               *term = 0;
 -       an.avc_class = strdup(str);
 -       if (term)
 -               *term = ' ';
 
         if (audit_avc_init(s) == 0) {
                 alist_append(s->avc, &an);