tcp: Remove redundant copy of MD5 authentication key
John Dykstra [Wed, 19 Aug 2009 09:47:41 +0000 (09:47 +0000)]
Remove the copy of the MD5 authentication key from tcp_check_req().
This key has already been copied by tcp_v4_syn_recv_sock() or
tcp_v6_syn_recv_sock().

Signed-off-by: John Dykstra <john.dykstra1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/ipv4/tcp_minisocks.c

index f8d67cc..6c8b422 100644 (file)
@@ -657,29 +657,6 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_buff *skb,
        child = inet_csk(sk)->icsk_af_ops->syn_recv_sock(sk, skb, req, NULL);
        if (child == NULL)
                goto listen_overflow;
-#ifdef CONFIG_TCP_MD5SIG
-       else {
-               /* Copy over the MD5 key from the original socket */
-               struct tcp_md5sig_key *key;
-               struct tcp_sock *tp = tcp_sk(sk);
-               key = tp->af_specific->md5_lookup(sk, child);
-               if (key != NULL) {
-                       /*
-                        * We're using one, so create a matching key on the
-                        * newsk structure. If we fail to get memory then we
-                        * end up not copying the key across. Shucks.
-                        */
-                       char *newkey = kmemdup(key->key, key->keylen,
-                                              GFP_ATOMIC);
-                       if (newkey) {
-                               if (!tcp_alloc_md5sig_pool())
-                                       BUG();
-                               tp->af_specific->md5_add(child, child, newkey,
-                                                        key->keylen);
-                       }
-               }
-       }
-#endif
 
        inet_csk_reqsk_queue_unlink(sk, req, prev);
        inet_csk_reqsk_queue_removed(sk, req);