1
0
Fork 0
alistair23-linux/net/ax25
David S. Miller 30902dc3cb ax25: Fix std timer socket destroy handling.
Tihomir Heidelberg - 9a4gl, reports:

--------------------
I would like to direct you attention to one problem existing in ax.25
kernel since 2.4. If listening socket is closed and its SKB queue is
released but those sockets get weird. Those "unAccepted()" sockets
should be destroyed in ax25_std_heartbeat_expiry, but it will not
happen. And there is also a note about that in ax25_std_timer.c:
/* Magic here: If we listen() and a new link dies before it
is accepted() it isn't 'dead' so doesn't get removed. */

This issue cause ax25d to stop accepting new connections and I had to
restarted ax25d approximately each day and my services were unavailable.
Also netstat -n -l shows invalid source and device for those listening
sockets. It is strange why ax25d's listening socket get weird because of
this issue, but definitely when I solved this bug I do not have problems
with ax25d anymore and my ax25d can run for months without problems.
--------------------

Actually as far as I can see, this problem is even in releases
as far back as 2.2.x as well.

It seems senseless to special case this test on TCP_LISTEN state.
Anything still stuck in state 0 has no external references and
we can just simply kill it off directly.

Signed-off-by: David S. Miller <davem@davemloft.net>
2008-06-17 21:26:37 -07:00
..
Kconfig [S390] Kconfig: unwanted menus for s390. 2007-05-10 15:46:07 +02:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
TODO [AX25]: Remove obsolete references to BKL from TODO file. 2008-03-26 02:14:38 -07:00
af_ax25.c ax25: Use sock_graft() and remove bogus sk_socket and sk_sleep init. 2008-06-17 02:20:54 -07:00
ax25_addr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ax25_dev.c [AX25] ax25_ds_timer: use mod_timer instead of add_timer 2008-02-12 17:53:34 -08:00
ax25_ds_in.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
ax25_ds_subr.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
ax25_ds_timer.c [AX25] ax25_ds_timer: use mod_timer instead of add_timer 2008-02-12 17:53:34 -08:00
ax25_iface.c [AX25]: don't free pointers to statically allocated data 2007-08-14 17:24:05 -07:00
ax25_in.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
ax25_ip.c [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
ax25_out.c [AX25] ax25_out: check skb for NULL in ax25_kick() 2008-02-17 22:31:19 -08:00
ax25_route.c [AX25] ax25_route: make ax25_route_lock BH safe 2008-02-12 17:53:32 -08:00
ax25_std_in.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ax25_std_subr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ax25_std_timer.c ax25: Fix std timer socket destroy handling. 2008-06-17 21:26:37 -07:00
ax25_subr.c ax25: Fix NULL pointer dereference and lockup. 2008-06-03 14:53:46 -07:00
ax25_timer.c [AX25] ax25_timer: use mod_timer instead of add_timer 2008-02-12 17:53:33 -08:00
ax25_uid.c [AX25]: Potential ax25_uid_assoc-s leaks on module unload. 2008-04-12 18:33:50 -07:00
sysctl_net_ax25.c [AX25]: Switch to using ctl_paths. 2008-01-28 15:01:09 -08:00