]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
cifs: fix module refcount leak in find_domain_name
authorJeff Layton <jlayton@redhat.com>
Wed, 6 Oct 2010 23:51:12 +0000 (19:51 -0400)
committerSteve French <sfrench@us.ibm.com>
Fri, 8 Oct 2010 03:33:08 +0000 (03:33 +0000)
find_domain_name() uses load_nls_default which takes a module reference
on the appropriate NLS module, but doesn't put it.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Cc: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/cifsencrypt.c

index 730038a12982ab36e254b9e4d7359c130e5c7f2c..89fb94fac4b5cd3409f0d34fae77bfcc42fd004b 100644 (file)
@@ -328,13 +328,16 @@ find_domain_name(struct cifsSesInfo *ses)
                        if (!attrsize)
                                break;
                        if (!ses->domainName) {
+                               struct nls_table *default_nls;
                                ses->domainName =
                                        kmalloc(attrsize + 1, GFP_KERNEL);
                                if (!ses->domainName)
                                                return -ENOMEM;
+                               default_nls = load_nls_default();
                                cifs_from_ucs2(ses->domainName,
                                        (__le16 *)blobptr, attrsize, attrsize,
-                                       load_nls_default(), false);
+                                       default_nls, false);
+                               unload_nls(default_nls);
                                break;
                        }
                }