On Wed, Aug 03, 2016 at 08:04:26PM +0200, David Herrmann wrote:
> @@ -98,13 +99,14 @@ int drm_clients_info(struct seq_file *m, void *data)
>  
>               rcu_read_lock(); /* locks pid_task()->comm */
>               task = pid_task(priv->pid, PIDTYPE_PID);
> +             uid = priv->filp ? priv->filp->f_cred->euid : GLOBAL_ROOT_UID;
>               seq_printf(m, "%20s %5d %3d   %c    %c %5d %10u\n",
>                          task ? task->comm : "<unknown>",
>                          pid_vnr(priv->pid),
>                          priv->minor->index,
>                          drm_is_current_master(priv) ? 'y' : 'n',
>                          priv->authenticated ? 'y' : 'n',
> -                        from_kuid_munged(seq_user_ns(m), priv->uid),
> +                        from_kuid_munged(seq_user_ns(m), uid),
>                          priv->magic);
>               rcu_read_unlock();
>       }
> diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
> index 33af4a5..49cd835 100644
> --- a/drivers/gpu/drm/drm_ioctl.c
> +++ b/drivers/gpu/drm/drm_ioctl.c
> @@ -191,7 +191,9 @@ static int drm_getclient(struct drm_device *dev, void 
> *data,
>               client->auth = file_priv->authenticated;
>               client->pid = pid_vnr(file_priv->pid);
>               client->uid = from_kuid_munged(current_user_ns(),
> -                                            file_priv->uid);
> +                                            file_priv->filp ?
> +                                            file_priv->filp->f_cred->euid :
> +                                            GLOBAL_ROOT_UID);

Why can't we use task_euid(pid_task(file_priv->pid)) here as well?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

Reply via email to