audit: no need to walk list in audit_inode if name is NULL
authorJeff Layton <jlayton@redhat.com>
Wed, 10 Oct 2012 19:25:21 +0000 (15:25 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 12 Oct 2012 04:31:59 +0000 (00:31 -0400)
If name is NULL then the condition in the loop will never be true. Also,
with this change, we can eliminate the check for n->name == NULL since
the equivalence check will never be true if it is.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
kernel/auditsc.c

index 4d1bd62..2e48114 100644 (file)
@@ -2147,11 +2147,15 @@ void __audit_inode(const char *name, const struct dentry *dentry)
        if (!context->in_syscall)
                return;
 
+       if (!name)
+               goto out_alloc;
+
        list_for_each_entry_reverse(n, &context->names_list, list) {
-               if (n->name && (n->name == name))
+               if (n->name == name)
                        goto out;
        }
 
+out_alloc:
        /* unable to find the name from a previous getname() */
        n = audit_alloc_name(context);
        if (!n)