diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-04-17 22:05:01 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-04-17 22:05:01 +0300 |
commit | 5d286d5ebcf6cb93b340f2439fe16a90b544c6e5 (patch) | |
tree | 648a90c222cab002f196f96cd90d316793097465 /fs | |
parent | ceb1adbacb4971cd47533d667f91ed06a38d7d4a (diff) | |
parent | 4fa3b1c417377c352208ee9f487e17cfcee32348 (diff) | |
download | linux-5d286d5ebcf6cb93b340f2439fe16a90b544c6e5.tar.xz |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
Pull proc fix from Eric Biederman:
"While running syzbot happened to spot one more oversight in my rework
of proc_flush_task.
The fields proc_self and proc_thread_self were not being reinitialized
when proc was unmounted, which could cause problems if the mount of
proc fails"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
proc: Handle umounts cleanly
Diffstat (limited to 'fs')
-rw-r--r-- | fs/proc/root.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/proc/root.c b/fs/proc/root.c index 2633f10446c3..cdbe9293ea55 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c @@ -196,6 +196,13 @@ static void proc_kill_sb(struct super_block *sb) if (ns->proc_thread_self) dput(ns->proc_thread_self); kill_anon_super(sb); + + /* Make the pid namespace safe for the next mount of proc */ + ns->proc_self = NULL; + ns->proc_thread_self = NULL; + ns->pid_gid = GLOBAL_ROOT_GID; + ns->hide_pid = 0; + put_pid_ns(ns); } |