|
Message-ID: <20110910132101.GA14535@albatros> Date: Sat, 10 Sep 2011 17:21:01 +0400 From: Vasiliy Kulikov <segoon@...nwall.com> To: kernel-hardening@...ts.openwall.com Cc: Andrew Morton <akpm@...ux-foundation.org>, Tejun Heo <tj@...nel.org>, "Kirill A. Shutemov" <kirill@...temov.name>, containers@...ts.osdl.org, linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org, Nathan Lynch <ntl@...ox.com>, Oren Laadan <orenl@...columbia.edu>, Daniel Lezcano <dlezcano@...ibm.com>, Glauber Costa <glommer@...allels.com>, James Bottomley <jbottomley@...allels.com>, Alexey Dobriyan <adobriyan@...il.com>, Al Viro <viro@...IV.linux.org.uk>, Pavel Emelyanov <xemul@...allels.com> Subject: Re: Re: [patch 2/2] fs, proc: Introduce the /proc/<pid>/map_files/ directory v6 Hi Cyrill, On Thu, Sep 08, 2011 at 10:04 +0400, Cyrill Gorcunov wrote: > +static int map_files_d_revalidate(struct dentry *dentry, struct nameidata *nd) > +{ > + unsigned long vm_start, vm_end; > + bool exact_vma_exists = false; > + struct task_struct *task; > + const struct cred *cred; > + struct mm_struct *mm; > + struct inode *inode; > + > + if (nd && nd->flags & LOOKUP_RCU) > + return -ECHILD; > + > + inode = dentry->d_inode; > + task = get_proc_task(inode); > + if (!task) > + goto out; > + > + if (!ptrace_may_access(task, PTRACE_MODE_READ)) put_task_struct(task) belongs here. > + goto out; > + > + mm = get_task_mm(task); > + put_task_struct(task); > + if (!mm) > + goto out; > + > + if (!dname_to_vma_addr(dentry, &vm_start, &vm_end)) { > + down_read(&mm->mmap_sem); > + exact_vma_exists = !!find_exact_vma(mm, vm_start, vm_end); > + up_read(&mm->mmap_sem); > + } > + > + mmput(mm); > + > + if (exact_vma_exists) { > + if (task_dumpable(task)) { > + rcu_read_lock(); > + cred = __task_cred(task); > + inode->i_uid = cred->euid; > + inode->i_gid = cred->egid; > + rcu_read_unlock(); > + } else { > + inode->i_uid = 0; > + inode->i_gid = 0; > + } > + security_task_to_inode(task, inode); > + return 1; > + } > +out: > + d_drop(dentry); > + return 0; > +} Thanks, -- Vasiliy Kulikov http://www.openwall.com - bringing security into open computing environments
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.