]> err.no Git - linux-2.6/blobdiff - security/selinux/avc.c
Fix oops due to thinko in avc_audit()
[linux-2.6] / security / selinux / avc.c
index 62b963aca27587b9d147fec666d2f4de6ff3a6c9..914d0d294fffc35298a5f5d239b13641a11543c3 100644 (file)
@@ -558,7 +558,7 @@ void avc_audit(u32 ssid, u32 tsid,
        audit_log_format(ab, " for ");
        if (a && a->tsk)
                tsk = a->tsk;
-       if (a->tsk && a->tsk->pid) {
+       if (tsk && tsk->pid) {
                audit_log_format(ab, " pid=%d comm=", tsk->pid);
                audit_log_untrustedstring(ab, tsk->comm);
        }
@@ -573,13 +573,10 @@ void avc_audit(u32 ssid, u32 tsid,
                case AVC_AUDIT_DATA_FS:
                        if (a->u.fs.dentry) {
                                struct dentry *dentry = a->u.fs.dentry;
-                               if (a->u.fs.mnt) {
-                                       audit_log_d_path(ab, "path=", dentry,
-                                                       a->u.fs.mnt);
-                               } else {
-                                       audit_log_format(ab, " name=%s",
-                                                        dentry->d_name.name);
-                               }
+                               if (a->u.fs.mnt)
+                                       audit_avc_path(dentry, a->u.fs.mnt);
+                               audit_log_format(ab, " name=%s",
+                                                dentry->d_name.name);
                                inode = dentry->d_inode;
                        } else if (a->u.fs.inode) {
                                struct dentry *dentry;
@@ -630,8 +627,10 @@ void avc_audit(u32 ssid, u32 tsid,
                                case AF_UNIX:
                                        u = unix_sk(sk);
                                        if (u->dentry) {
-                                               audit_log_d_path(ab, "path=",
-                                                       u->dentry, u->mnt);
+                                               audit_avc_path(u->dentry, u->mnt);
+                                               audit_log_format(ab, " name=%s",
+                                                                u->dentry->d_name.name);
+
                                                break;
                                        }
                                        if (!u->addr)