summaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2011-06-17 15:14:27 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2011-06-25 00:39:41 +0200
commitd687ca380f1a8f3043f42efd2403cbe58c846e70 (patch)
treec18d1ad493a08fbbe2ffcb03a7727f7aa454ff11 /fs/cifs/cifsfs.c
parentcifs: don't pass superblock to cifs_mount() (diff)
downloadlinux-d687ca380f1a8f3043f42efd2403cbe58c846e70.tar.xz
linux-d687ca380f1a8f3043f42efd2403cbe58c846e70.zip
cifs: leak on mount if we share superblock
cifs_sb and nls end up leaked... Acked-by: Pavel Shilovsky <piastryyy@gmail.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to '')
-rw-r--r--fs/cifs/cifsfs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 8f7451f3c8e6..4162ee45d043 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -701,6 +701,8 @@ cifs_do_mount(struct file_system_type *fs_type,
if (sb->s_fs_info) {
cFYI(1, "Use existing superblock");
+ unload_nls(cifs_sb->local_nls);
+ kfree(cifs_sb);
goto out_shared;
}