From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Dobriyan Subject: [PATCH 2/9] exec_path 2/9: switch audit to ->exec_path Date: Thu, 4 Jun 2009 03:05:20 +0400 Message-ID: <20090603230520.GC853@x200.localdomain> References: <20090526113618.GJ28083@us.ibm.com> <20090526162415.fb9cefef.akpm@linux-foundation.org> <20090531215427.GA29534@x200.localdomain> <20090531151953.8f8b14b5.akpm@linux-foundation.org> <20090603230422.GB853@x200.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Matt Helsley , xemul@parallels.com, containers@lists.linux-foundation.org, linux-kernel@vger.kernel.org, dave@linux.vnet.ibm.com, mingo@elte.hu, torvalds@linux-foundation.org, linux-fsdevel@vger.kernel.org To: Andrew Morton Return-path: Received: from fg-out-1718.google.com ([72.14.220.153]:42868 "EHLO fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752796AbZFCXFV (ORCPT ); Wed, 3 Jun 2009 19:05:21 -0400 Content-Disposition: inline In-Reply-To: <20090603230422.GB853@x200.localdomain> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Signed-off-by: Alexey Dobriyan --- kernel/auditsc.c | 23 +++++++---------------- 1 files changed, 7 insertions(+), 16 deletions(-) diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 7d6ac7c..76829b6 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -949,8 +950,7 @@ EXPORT_SYMBOL(audit_log_task_context); static void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk) { char name[sizeof(tsk->comm)]; - struct mm_struct *mm = tsk->mm; - struct vm_area_struct *vma; + struct path exec_path; /* tsk == current */ @@ -958,20 +958,11 @@ static void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk audit_log_format(ab, " comm="); audit_log_untrustedstring(ab, name); - if (mm) { - down_read(&mm->mmap_sem); - vma = mm->mmap; - while (vma) { - if ((vma->vm_flags & VM_EXECUTABLE) && - vma->vm_file) { - audit_log_d_path(ab, "exe=", - &vma->vm_file->f_path); - break; - } - vma = vma->vm_next; - } - up_read(&mm->mmap_sem); - } + get_task_exec_path(tsk, &exec_path); + if (exec_path.mnt && exec_path.dentry) + audit_log_d_path(ab, "exe=", &exec_path); + path_put(&exec_path); + audit_log_task_context(ab); }