forked from mirrors/linux
		
	 24c5efe41c
			
		
	
	
		24c5efe41c
		
	
	
	
	
		
			
			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>
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			782 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			782 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| /*
 | |
|  * linux/include/linux/sunrpc/svcauth_gss.h
 | |
|  *
 | |
|  * Bruce Fields <bfields@umich.edu>
 | |
|  * Copyright (c) 2002 The Regents of the University of Michigan
 | |
|  */
 | |
| 
 | |
| #ifndef _LINUX_SUNRPC_SVCAUTH_GSS_H
 | |
| #define _LINUX_SUNRPC_SVCAUTH_GSS_H
 | |
| 
 | |
| #include <linux/sched.h>
 | |
| #include <linux/sunrpc/types.h>
 | |
| #include <linux/sunrpc/xdr.h>
 | |
| #include <linux/sunrpc/svcauth.h>
 | |
| #include <linux/sunrpc/svcsock.h>
 | |
| #include <linux/sunrpc/auth_gss.h>
 | |
| 
 | |
| int gss_svc_init(void);
 | |
| void gss_svc_shutdown(void);
 | |
| int gss_svc_init_net(struct net *net);
 | |
| void gss_svc_shutdown_net(struct net *net);
 | |
| struct auth_domain *svcauth_gss_register_pseudoflavor(u32 pseudoflavor,
 | |
| 						      char *name);
 | |
| u32 svcauth_gss_flavor(struct auth_domain *dom);
 | |
| 
 | |
| #endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */
 |