Messages in this thread | | | Date | Mon, 26 Mar 2012 22:33:30 +0400 | From | Cyrill Gorcunov <> | Subject | Re: [rfc] fcntl: Add F_GETOWNER_UIDS option |
| |
On Mon, Mar 26, 2012 at 06:43:47PM +0200, Oleg Nesterov wrote: > On 03/26, Cyrill Gorcunov wrote: > > > > +#ifdef CONFIG_CHECKPOINT_RESTORE > > +static int f_getowner_uids(struct file *filp, unsigned long arg) > > +{ > > + struct user_namespace *user_ns = current_user_ns(); > > + const struct cred *cred = current_cred(); > > + uid_t * __user dst = (void * __user)arg; > > + uid_t src[2]; > > + int err; > > + > > + read_lock(&filp->f_owner.lock); > > + src[0] = filp->f_owner.uid; > > + src[1] = filp->f_owner.euid; > > + read_unlock(&filp->f_owner.lock); > > + > > + src[0] = user_ns_map_uid(user_ns, cred, src[0]); > > + src[1] = user_ns_map_uid(user_ns, cred, src[1]); > > Why? > > In this case user_ns_map_uid() is "nop", it should always return > the last arg, no?
Yes, but I wanted to be on safe side, and if one day user_ns_map_uid get changed this function won't be security hole. Or I miss something in general?
Cyrill
| |