[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070730160448.GA4002@redhat.com>
Date: Mon, 30 Jul 2007 13:04:48 -0300
From: Flavio Leitner <fleitner@...hat.com>
To: David L Stevens <dlstevens@...ibm.com>
Cc: davem@...emloft.net, acme@...stprotocols.net,
netdev@...r.kernel.org
Subject: [PATCH] [NET]: fix multicast list when cloning sockets
The sock_copy() function uses memcpy() to clone the socket
including the struct ip_mc_socklist *mc_list pointer.
The ip_mc_drop_socket() function is called when socket is closed
to free these objects leaving the other sockets cloned from the
same master socket with invalid pointers.
This patch sets mc_list of cloned socket to NULL.
Signed-off-by: Flavio Leitner <fleitner@...hat.com>
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
index fbe7714..8ee0f54 100644
--- a/net/ipv4/inet_connection_sock.c
+++ b/net/ipv4/inet_connection_sock.c
@@ -506,6 +506,8 @@ struct sock *inet_csk_clone(struct sock *sk, const struct request_sock *req,
newicsk->icsk_backoff = 0;
newicsk->icsk_probes_out = 0;
+ inet_sk(inet)->mc_list = NULL;
+
/* Deinitialize accept_queue to trap illegal accesses. */
memset(&newicsk->icsk_accept_queue, 0, sizeof(newicsk->icsk_accept_queue));
--
1.5.2.4
--
Flavio
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists