sunrpc: clean up properly in gss_mech_unregister()
authorNeilBrown <neilb@suse.de>
Fri, 22 May 2020 02:01:33 +0000 (12:01 +1000)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 28 May 2020 22:15:00 +0000 (18:15 -0400)
commit24c5efe41c29ee3e55bcf5a1c9f61ca8709622e8
treeff3cd363effa0d73c445a9dbfc885306ec810111
parentd47a5dc2888fd1b94adf1553068b8dad76cec96c
sunrpc: clean up properly in gss_mech_unregister()

gss_mech_register() calls svcauth_gss_register_pseudoflavor() for each
flavour, but gss_mech_unregister() does not call auth_domain_put().
This is unbalanced and makes it impossible to reload the module.

Change svcauth_gss_register_pseudoflavor() to return the registered
auth_domain, and save it for later release.

Cc: stable@vger.kernel.org (v2.6.12+)
Link: https://bugzilla.kernel.org/show_bug.cgi?id=206651
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
include/linux/sunrpc/gss_api.h
include/linux/sunrpc/svcauth_gss.h
net/sunrpc/auth_gss/gss_mech_switch.c
net/sunrpc/auth_gss/svcauth_gss.c