kernel-fxtec-pro1x/net
Frank Filz 54f9247b3f knfsd: fix resource leak resulting in module refcount leak for rpcsec_gss_krb5.ko
I have been investigating a module reference count leak on the server for
rpcsec_gss_krb5.ko.  It turns out the problem is a reference count leak for
the security context in net/sunrpc/auth_gss/svcauth_gss.c.

The problem is that gss_write_init_verf() calls gss_svc_searchbyctx() which
does a rsc_lookup() but never releases the reference to the context.  There is
another issue that rpc.svcgssd sets an "end of time" expiration for the
context

By adding a cache_put() call in gss_svc_searchbyctx(), and setting an
expiration timeout in the downcall, cache_clean() does clean up the context
and the module reference count now goes to zero after unmount.

I also verified that if the context expires and then the client makes a new
request, a new context is established.

Here is the patch to fix the kernel, I will start a separate thread to discuss
what expiration time should be set by rpc.svcgssd.

Acked-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Frank Filz <ffilzlnx@us.ibm.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-09 12:30:54 -07:00
..
802 [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
8021q [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
appletalk header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
atm [NET]: SPIN_LOCK_UNLOCKED cleanup in drivers/atm, net 2007-04-26 01:37:44 -07:00
ax25 header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
bluetooth header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
bridge header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
core header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
dccp [NET]: SPIN_LOCK_UNLOCKED cleanup in drivers/atm, net 2007-04-26 01:37:44 -07:00
decnet [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
econet [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
ethernet [SK_BUFF]: Introduce skb_reset_mac_header(skb) 2007-04-25 22:24:32 -07:00
ieee80211 [PATCH] ieee80211: add missing global needed by IEEE80211_DEBUG_XXXX 2007-04-28 11:01:05 -04:00
ipv4 unify flush_work/flush_work_keventd and rename it to cancel_work_sync 2007-05-09 12:30:53 -07:00
ipv6 header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
ipx header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
irda header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
iucv [AF_IUCV]: Compile fix - adopt to skbuff changes. 2007-05-05 11:41:18 -07:00
key [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
lapb [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
llc [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
mac80211 [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
netfilter kconfig: fix path to modules.txt in Kconfig help 2007-05-02 20:58:11 +02:00
netlabel SELinux: extract the NetLabel SELinux support from the security server 2007-04-26 01:35:48 -04:00
netlink header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
netrom [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
packet [AF_PACKET]: Add option to return orig_dev to userspace. 2007-04-25 22:29:14 -07:00
rfkill [NET]: rfkill: add support for input key to control wireless radio 2007-05-07 00:34:20 -07:00
rose [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
rxrpc [AF_RXRPC]: Sort out MTU handling. 2007-05-04 12:41:11 -07:00
sched [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
sctp [SCTP]: Set assoc_id correctly during INIT collision. 2007-05-04 13:55:27 -07:00
sunrpc knfsd: fix resource leak resulting in module refcount leak for rpcsec_gss_krb5.ko 2007-05-09 12:30:54 -07:00
tipc Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2007-05-06 13:21:57 -07:00
unix header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
wanrouter [SK_BUFF]: Introduce skb_copy_to_linear_data{_offset} 2007-04-25 22:28:29 -07:00
wireless [WIRELESS] cfg80211: Clarify locking comment. 2007-04-26 20:51:12 -07:00
x25 header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
xfrm [XFRM] SPD info TLV aggregation 2007-05-04 12:55:39 -07:00
compat.c [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
Kconfig [NET]: rfkill: add support for input key to control wireless radio 2007-05-07 00:34:20 -07:00
Makefile [NET]: rfkill: add support for input key to control wireless radio 2007-05-07 00:34:20 -07:00
nonet.c [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
socket.c VFS: delay the dentry name generation on sockets and pipes 2007-05-08 11:15:03 -07:00
sysctl_net.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
TUNABLE