diff options
author | John Dykstra <john.dykstra1@gmail.com> | 2009-08-19 05:47:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-29 03:19:25 -0400 |
commit | 9a7030b76ab3c2b23b1629c49b6df33fb5aed305 (patch) | |
tree | 4deccd774c78070f72fc851228d10bf7c36d5211 /net/ipv4 | |
parent | fd3ae5e8fc5e947a9f151e80a65763a24b6368a9 (diff) |
tcp: Remove redundant copy of MD5 authentication key
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>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/tcp_minisocks.c | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index f8d67ccc64f3..6c8b42299d9f 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
@@ -657,29 +657,6 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_buff *skb, | |||
657 | child = inet_csk(sk)->icsk_af_ops->syn_recv_sock(sk, skb, req, NULL); | 657 | child = inet_csk(sk)->icsk_af_ops->syn_recv_sock(sk, skb, req, NULL); |
658 | if (child == NULL) | 658 | if (child == NULL) |
659 | goto listen_overflow; | 659 | goto listen_overflow; |
660 | #ifdef CONFIG_TCP_MD5SIG | ||
661 | else { | ||
662 | /* Copy over the MD5 key from the original socket */ | ||
663 | struct tcp_md5sig_key *key; | ||
664 | struct tcp_sock *tp = tcp_sk(sk); | ||
665 | key = tp->af_specific->md5_lookup(sk, child); | ||
666 | if (key != NULL) { | ||
667 | /* | ||
668 | * We're using one, so create a matching key on the | ||
669 | * newsk structure. If we fail to get memory then we | ||
670 | * end up not copying the key across. Shucks. | ||
671 | */ | ||
672 | char *newkey = kmemdup(key->key, key->keylen, | ||
673 | GFP_ATOMIC); | ||
674 | if (newkey) { | ||
675 | if (!tcp_alloc_md5sig_pool()) | ||
676 | BUG(); | ||
677 | tp->af_specific->md5_add(child, child, newkey, | ||
678 | key->keylen); | ||
679 | } | ||
680 | } | ||
681 | } | ||
682 | #endif | ||
683 | 660 | ||
684 | inet_csk_reqsk_queue_unlink(sk, req, prev); | 661 | inet_csk_reqsk_queue_unlink(sk, req, prev); |
685 | inet_csk_reqsk_queue_removed(sk, req); | 662 | inet_csk_reqsk_queue_removed(sk, req); |