On Fri, 2007-11-02 at 01:04 -0700, Andrew Morton wrote:I think we're still a bit murky on exactly what the issues are. Ingo, Ulrich, is this the right track? The kind of issues that you're concerned about? There are certainly more of these, but here is one In the futex userspace address, we install the current pid's vnr into a userspace address. static int futex_lock_pi(u32 __user *uaddr, struct rw_semaphore *fshared, int detect, ktime_t *time, int trylock) { ... newval = task_pid_vnr(current); curval = cmpxchg_futex_value_locked(uaddr, 0, newval); We obviously don't have any restrictions on who else might be mapping that address, so that pid can theoretically leak out to any other task. In another pid namespace, the pid at that userspace address is certainly nonsensical. -- Dave -
