* [PATCH 2.4 NETLINK]: Unhash sockets correctly
@ 2005-02-16 18:54 Patrick McHardy
2005-02-16 19:52 ` David S. Miller
0 siblings, 1 reply; 2+ messages in thread
From: Patrick McHardy @ 2005-02-16 18:54 UTC (permalink / raw)
To: David S. Miller; +Cc: Maillist netdev
[-- Attachment #1: Type: text/plain, Size: 286 bytes --]
Hi Dave,
this patch fixes a nasty bug introduced by the pid-hash backport.
Sockets are only unhashed if they are contained in the first hash
bucket. This leads to leaking sockets and, over time, to bind
conflicts which confuse iproute and result in sporadic failure.
Regards
Patrick
[-- Attachment #2: x --]
[-- Type: text/plain, Size: 1347 bytes --]
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
# 2005/02/16 19:32:38+01:00 kaber@coreworks.de
# [NETLINK]: Unhash sockets correctly
#
# netlink_remove() only unhashes sockets contained in the
# first hash bucket. This leads to leaking sockets and,
# over time, to bind conflicts which confuse iproute.
#
# Signed-off-by: Patrick McHardy <kaber@trash.net>
#
# net/netlink/af_netlink.c
# 2005/02/16 19:32:36+01:00 kaber@coreworks.de +2 -1
# [NETLINK]: Unhash sockets correctly
#
# netlink_remove() only unhashes sockets contained in the
# first hash bucket. This leads to leaking sockets and,
# over time, to bind conflicts which confuse iproute.
#
# Signed-off-by: Patrick McHardy <kaber@trash.net>
#
diff -Nru a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
--- a/net/netlink/af_netlink.c 2005-02-16 19:32:51 +01:00
+++ b/net/netlink/af_netlink.c 2005-02-16 19:32:51 +01:00
@@ -327,10 +327,11 @@
struct sock **skp;
struct netlink_table *table = &nl_table[sk->protocol];
struct nl_pid_hash *hash = &table->hash;
+ u32 pid = nlk_sk(sk)->pid;
netlink_table_grab();
hash->entries--;
- for (skp = hash->table; *skp; skp = &((*skp)->next)) {
+ for (skp = nl_pid_hashfn(hash, pid); *skp; skp = &((*skp)->next)) {
if (*skp == sk) {
*skp = sk->next;
__sock_put(sk);
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 2.4 NETLINK]: Unhash sockets correctly
2005-02-16 18:54 [PATCH 2.4 NETLINK]: Unhash sockets correctly Patrick McHardy
@ 2005-02-16 19:52 ` David S. Miller
0 siblings, 0 replies; 2+ messages in thread
From: David S. Miller @ 2005-02-16 19:52 UTC (permalink / raw)
To: Patrick McHardy; +Cc: netdev
On Wed, 16 Feb 2005 19:54:17 +0100
Patrick McHardy <kaber@trash.net> wrote:
> this patch fixes a nasty bug introduced by the pid-hash backport.
> Sockets are only unhashed if they are contained in the first hash
> bucket. This leads to leaking sockets and, over time, to bind
> conflicts which confuse iproute and result in sporadic failure.
Good catch Patrick. Applied, and I'll push upstream momentarily.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-02-16 19:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-16 18:54 [PATCH 2.4 NETLINK]: Unhash sockets correctly Patrick McHardy
2005-02-16 19:52 ` David S. Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).