]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
cifs: release cifs root_cred after exit_cifs
authorShu Wang <shuwang@redhat.com>
Thu, 7 Sep 2017 08:03:27 +0000 (16:03 +0800)
committerSeth Forshee <seth.forshee@canonical.com>
Thu, 12 Oct 2017 21:19:58 +0000 (16:19 -0500)
BugLink: http://bugs.launchpad.net/bugs/1721777
commit 94183331e815617246b1baa97e0916f358c794bb upstream.

memory leak was found by kmemleak. exit_cifs_spnego
should be called before cifs module removed, or
cifs root_cred will not be released.

kmemleak report:
unreferenced object 0xffff880070a3ce40 (size 192):
  backtrace:
     kmemleak_alloc+0x4a/0xa0
     kmem_cache_alloc+0xc7/0x1d0
     prepare_kernel_cred+0x20/0x120
     init_cifs_spnego+0x2d/0x170 [cifs]
     0xffffffffc07801f3
     do_one_initcall+0x51/0x1b0
     do_init_module+0x60/0x1fd
     load_module+0x161e/0x1b60
     SYSC_finit_module+0xa9/0x100
     SyS_finit_module+0xe/0x10

Signed-off-by: Shu Wang <shuwang@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
fs/cifs/cifsfs.c

index 180b3356ff8612dfc7f3cd702e350bb284ca1a0d..a92bdb89bde30dd15b5b6da7509041bdcc36bdce 100644 (file)
@@ -1447,7 +1447,7 @@ exit_cifs(void)
        exit_cifs_idmap();
 #endif
 #ifdef CONFIG_CIFS_UPCALL
-       unregister_key_type(&cifs_spnego_key_type);
+       exit_cifs_spnego();
 #endif
        cifs_destroy_request_bufs();
        cifs_destroy_mids();