From: Al Viro Date: Sun, 12 Jun 2011 13:42:17 +0000 (-0400) Subject: fix leak in proc_set_super() X-Git-Tag: firefly_0821_release~3680^2~5236^2~10 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ff78fca2a03c08436535d3f7152a30752d8131d1;p=firefly-linux-kernel-4.4.55.git fix leak in proc_set_super() set_anon_super() can fail... Signed-off-by: Al Viro --- diff --git a/fs/proc/root.c b/fs/proc/root.c index a9000e9cfee5..d6c3b416529b 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c @@ -28,11 +28,12 @@ static int proc_test_super(struct super_block *sb, void *data) static int proc_set_super(struct super_block *sb, void *data) { - struct pid_namespace *ns; - - ns = (struct pid_namespace *)data; - sb->s_fs_info = get_pid_ns(ns); - return set_anon_super(sb, NULL); + int err = set_anon_super(sb, NULL); + if (!err) { + struct pid_namespace *ns = (struct pid_namespace *)data; + sb->s_fs_info = get_pid_ns(ns); + } + return err; } static struct dentry *proc_mount(struct file_system_type *fs_type,