]> Pileus Git - ~andy/linux/blobdiff - fs/proc/array.c
Merge branch 'late/cleanup' into devel-late
[~andy/linux] / fs / proc / array.c
index f9bd395b3473f6f1ca5f0697679d7d469e9fdb7c..dc4c5a7b9eceb767c0d7305ce5e1b609cdcdaef3 100644 (file)
@@ -81,6 +81,7 @@
 #include <linux/pid_namespace.h>
 #include <linux/ptrace.h>
 #include <linux/tracehook.h>
+#include <linux/user_namespace.h>
 
 #include <asm/pgtable.h>
 #include <asm/processor.h>
@@ -161,6 +162,7 @@ static inline const char *get_task_state(struct task_struct *tsk)
 static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
                                struct pid *pid, struct task_struct *p)
 {
+       struct user_namespace *user_ns = current_user_ns();
        struct group_info *group_info;
        int g;
        struct fdtable *fdt = NULL;
@@ -189,8 +191,14 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
                task_tgid_nr_ns(p, ns),
                pid_nr_ns(pid, ns),
                ppid, tpid,
-               cred->uid, cred->euid, cred->suid, cred->fsuid,
-               cred->gid, cred->egid, cred->sgid, cred->fsgid);
+               from_kuid_munged(user_ns, cred->uid),
+               from_kuid_munged(user_ns, cred->euid),
+               from_kuid_munged(user_ns, cred->suid),
+               from_kuid_munged(user_ns, cred->fsuid),
+               from_kgid_munged(user_ns, cred->gid),
+               from_kgid_munged(user_ns, cred->egid),
+               from_kgid_munged(user_ns, cred->sgid),
+               from_kgid_munged(user_ns, cred->fsgid));
 
        task_lock(p);
        if (p->files)
@@ -205,7 +213,8 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
        task_unlock(p);
 
        for (g = 0; g < min(group_info->ngroups, NGROUPS_SMALL); g++)
-               seq_printf(m, "%d ", GROUP_AT(group_info, g));
+               seq_printf(m, "%d ",
+                          from_kgid_munged(user_ns, GROUP_AT(group_info, g)));
        put_cred(cred);
 
        seq_putc(m, '\n');