]> git.hungrycats.org Git - linux/commitdiff
[PATCH] selinux: Add dname to audit output when a path cannot be generated.
authorAndrew Morton <akpm@osdl.org>
Mon, 19 Jan 2004 02:38:22 +0000 (18:38 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Mon, 19 Jan 2004 02:38:22 +0000 (18:38 -0800)
From: James Morris <jmorris@redhat.com>

This patch adds dname to audit output when a path cannot be generated.
This makes analysis of SELinux audit logs easier.

Patch by Stephen Smalley <sds@epoch.ncsc.mil>.

security/selinux/avc.c

index b6c792db23efbcbfb4048701a6f8d86870629fef..bbe243cabb2df6dbf8c5d2b105b78aab03975804 100644 (file)
@@ -575,17 +575,26 @@ void avc_audit(u32 ssid, u32 tsid,
                        break;
                case AVC_AUDIT_DATA_FS:
                        if (a->u.fs.dentry) {
+                               struct dentry *dentry = a->u.fs.dentry;
                                if (a->u.fs.mnt) {
-                                       p = d_path(a->u.fs.dentry,
+                                       p = d_path(dentry,
                                                   a->u.fs.mnt,
                                                   avc_audit_buffer,
                                                   PAGE_SIZE);
                                        if (p)
                                                printk(" path=%s", p);
+                               } else {
+                                       printk(" name=%s", dentry->d_name.name);
                                }
-                               inode = a->u.fs.dentry->d_inode;
+                               inode = dentry->d_inode;
                        } else if (a->u.fs.inode) {
+                               struct dentry *dentry;
                                inode = a->u.fs.inode;
+                               dentry = d_find_alias(inode);
+                               if (dentry) {
+                                       printk(" name=%s", dentry->d_name.name);
+                                       dput(dentry);
+                               }
                        }
                        if (inode)
                                printk(" dev=%s ino=%ld",