diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ieee80211/Kconfig | 2 | ||||
-rw-r--r-- | net/ipv4/netfilter/ip_nat_tftp.c | 5 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 19 |
3 files changed, 14 insertions, 12 deletions
diff --git a/net/ieee80211/Kconfig b/net/ieee80211/Kconfig index 91b16fbf91f0..d18ccba3ea9e 100644 --- a/net/ieee80211/Kconfig +++ b/net/ieee80211/Kconfig | |||
@@ -55,7 +55,7 @@ config IEEE80211_CRYPT_CCMP | |||
55 | 55 | ||
56 | config IEEE80211_CRYPT_TKIP | 56 | config IEEE80211_CRYPT_TKIP |
57 | tristate "IEEE 802.11i TKIP encryption" | 57 | tristate "IEEE 802.11i TKIP encryption" |
58 | depends on IEEE80211 | 58 | depends on IEEE80211 && NET_RADIO |
59 | select CRYPTO | 59 | select CRYPTO |
60 | select CRYPTO_MICHAEL_MIC | 60 | select CRYPTO_MICHAEL_MIC |
61 | ---help--- | 61 | ---help--- |
diff --git a/net/ipv4/netfilter/ip_nat_tftp.c b/net/ipv4/netfilter/ip_nat_tftp.c index 2215317c76b7..43c3bd7c118e 100644 --- a/net/ipv4/netfilter/ip_nat_tftp.c +++ b/net/ipv4/netfilter/ip_nat_tftp.c | |||
@@ -42,7 +42,10 @@ static unsigned int help(struct sk_buff **pskb, | |||
42 | enum ip_conntrack_info ctinfo, | 42 | enum ip_conntrack_info ctinfo, |
43 | struct ip_conntrack_expect *exp) | 43 | struct ip_conntrack_expect *exp) |
44 | { | 44 | { |
45 | exp->saved_proto.udp.port = exp->tuple.dst.u.tcp.port; | 45 | struct ip_conntrack *ct = exp->master; |
46 | |||
47 | exp->saved_proto.udp.port | ||
48 | = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u.udp.port; | ||
46 | exp->dir = IP_CT_DIR_REPLY; | 49 | exp->dir = IP_CT_DIR_REPLY; |
47 | exp->expectfn = ip_nat_follow_master; | 50 | exp->expectfn = ip_nat_follow_master; |
48 | if (ip_conntrack_expect_related(exp) != 0) | 51 | if (ip_conntrack_expect_related(exp) != 0) |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 62c0e5bd931c..8827389abaf7 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -992,13 +992,12 @@ static void tcp_v6_send_reset(struct sk_buff *skb) | |||
992 | /* sk = NULL, but it is safe for now. RST socket required. */ | 992 | /* sk = NULL, but it is safe for now. RST socket required. */ |
993 | if (!ip6_dst_lookup(NULL, &buff->dst, &fl)) { | 993 | if (!ip6_dst_lookup(NULL, &buff->dst, &fl)) { |
994 | 994 | ||
995 | if ((xfrm_lookup(&buff->dst, &fl, NULL, 0)) < 0) | 995 | if (xfrm_lookup(&buff->dst, &fl, NULL, 0) >= 0) { |
996 | ip6_xmit(NULL, buff, &fl, NULL, 0); | ||
997 | TCP_INC_STATS_BH(TCP_MIB_OUTSEGS); | ||
998 | TCP_INC_STATS_BH(TCP_MIB_OUTRSTS); | ||
996 | return; | 999 | return; |
997 | 1000 | } | |
998 | ip6_xmit(NULL, buff, &fl, NULL, 0); | ||
999 | TCP_INC_STATS_BH(TCP_MIB_OUTSEGS); | ||
1000 | TCP_INC_STATS_BH(TCP_MIB_OUTRSTS); | ||
1001 | return; | ||
1002 | } | 1001 | } |
1003 | 1002 | ||
1004 | kfree_skb(buff); | 1003 | kfree_skb(buff); |
@@ -1057,11 +1056,11 @@ static void tcp_v6_send_ack(struct sk_buff *skb, u32 seq, u32 ack, u32 win, u32 | |||
1057 | fl.fl_ip_sport = t1->source; | 1056 | fl.fl_ip_sport = t1->source; |
1058 | 1057 | ||
1059 | if (!ip6_dst_lookup(NULL, &buff->dst, &fl)) { | 1058 | if (!ip6_dst_lookup(NULL, &buff->dst, &fl)) { |
1060 | if ((xfrm_lookup(&buff->dst, &fl, NULL, 0)) < 0) | 1059 | if (xfrm_lookup(&buff->dst, &fl, NULL, 0) >= 0) { |
1060 | ip6_xmit(NULL, buff, &fl, NULL, 0); | ||
1061 | TCP_INC_STATS_BH(TCP_MIB_OUTSEGS); | ||
1061 | return; | 1062 | return; |
1062 | ip6_xmit(NULL, buff, &fl, NULL, 0); | 1063 | } |
1063 | TCP_INC_STATS_BH(TCP_MIB_OUTSEGS); | ||
1064 | return; | ||
1065 | } | 1064 | } |
1066 | 1065 | ||
1067 | kfree_skb(buff); | 1066 | kfree_skb(buff); |