diff options
author | Patrick McHardy <kaber@trash.net> | 2010-03-18 07:55:50 -0400 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-03-18 07:55:50 -0400 |
commit | e8a96f69383f3d88cdc06d8ccd450f70c48628a3 (patch) | |
tree | b8ce41ee20eb379731e7592d7b6fb17471918a61 /net | |
parent | c01ae818a3e3578747861d9a0c7fabe9641786c1 (diff) | |
parent | 1da05f50f6a766c7611102382f85183b4db96c2d (diff) |
Merge branch 'master' of ../nf-2.6
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/netfilter/ebt_ip6.c | 18 | ||||
-rw-r--r-- | net/netfilter/ipvs/ip_vs_ftp.c | 10 |
2 files changed, 12 insertions, 16 deletions
diff --git a/net/bridge/netfilter/ebt_ip6.c b/net/bridge/netfilter/ebt_ip6.c index 05d0d0c4ccb9..63e3888d20cf 100644 --- a/net/bridge/netfilter/ebt_ip6.c +++ b/net/bridge/netfilter/ebt_ip6.c | |||
@@ -35,8 +35,6 @@ ebt_ip6_mt(const struct sk_buff *skb, const struct xt_match_param *par) | |||
35 | struct ipv6hdr _ip6h; | 35 | struct ipv6hdr _ip6h; |
36 | const struct tcpudphdr *pptr; | 36 | const struct tcpudphdr *pptr; |
37 | struct tcpudphdr _ports; | 37 | struct tcpudphdr _ports; |
38 | struct in6_addr tmp_addr; | ||
39 | int i; | ||
40 | 38 | ||
41 | ih6 = skb_header_pointer(skb, 0, sizeof(_ip6h), &_ip6h); | 39 | ih6 = skb_header_pointer(skb, 0, sizeof(_ip6h), &_ip6h); |
42 | if (ih6 == NULL) | 40 | if (ih6 == NULL) |
@@ -44,18 +42,10 @@ ebt_ip6_mt(const struct sk_buff *skb, const struct xt_match_param *par) | |||
44 | if (info->bitmask & EBT_IP6_TCLASS && | 42 | if (info->bitmask & EBT_IP6_TCLASS && |
45 | FWINV(info->tclass != ipv6_get_dsfield(ih6), EBT_IP6_TCLASS)) | 43 | FWINV(info->tclass != ipv6_get_dsfield(ih6), EBT_IP6_TCLASS)) |
46 | return false; | 44 | return false; |
47 | for (i = 0; i < 4; i++) | 45 | if (FWINV(ipv6_masked_addr_cmp(&ih6->saddr, &info->smsk, |
48 | tmp_addr.in6_u.u6_addr32[i] = ih6->saddr.in6_u.u6_addr32[i] & | 46 | &info->saddr), EBT_IP6_SOURCE) || |
49 | info->smsk.in6_u.u6_addr32[i]; | 47 | FWINV(ipv6_masked_addr_cmp(&ih6->daddr, &info->dmsk, |
50 | if (info->bitmask & EBT_IP6_SOURCE && | 48 | &info->daddr), EBT_IP6_DEST)) |
51 | FWINV((ipv6_addr_cmp(&tmp_addr, &info->saddr) != 0), | ||
52 | EBT_IP6_SOURCE)) | ||
53 | return false; | ||
54 | for (i = 0; i < 4; i++) | ||
55 | tmp_addr.in6_u.u6_addr32[i] = ih6->daddr.in6_u.u6_addr32[i] & | ||
56 | info->dmsk.in6_u.u6_addr32[i]; | ||
57 | if (info->bitmask & EBT_IP6_DEST && | ||
58 | FWINV((ipv6_addr_cmp(&tmp_addr, &info->daddr) != 0), EBT_IP6_DEST)) | ||
59 | return false; | 49 | return false; |
60 | if (info->bitmask & EBT_IP6_PROTO) { | 50 | if (info->bitmask & EBT_IP6_PROTO) { |
61 | uint8_t nexthdr = ih6->nexthdr; | 51 | uint8_t nexthdr = ih6->nexthdr; |
diff --git a/net/netfilter/ipvs/ip_vs_ftp.c b/net/netfilter/ipvs/ip_vs_ftp.c index 73f38ea98f25..9f6328303844 100644 --- a/net/netfilter/ipvs/ip_vs_ftp.c +++ b/net/netfilter/ipvs/ip_vs_ftp.c | |||
@@ -208,8 +208,14 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp, | |||
208 | */ | 208 | */ |
209 | from.ip = n_cp->vaddr.ip; | 209 | from.ip = n_cp->vaddr.ip; |
210 | port = n_cp->vport; | 210 | port = n_cp->vport; |
211 | sprintf(buf, "%u,%u,%u,%u,%u,%u", NIPQUAD(from.ip), | 211 | snprintf(buf, sizeof(buf), "%u,%u,%u,%u,%u,%u", |
212 | (ntohs(port)>>8)&255, ntohs(port)&255); | 212 | ((unsigned char *)&from.ip)[0], |
213 | ((unsigned char *)&from.ip)[1], | ||
214 | ((unsigned char *)&from.ip)[2], | ||
215 | ((unsigned char *)&from.ip)[3], | ||
216 | ntohs(port) >> 8, | ||
217 | ntohs(port) & 0xFF); | ||
218 | |||
213 | buf_len = strlen(buf); | 219 | buf_len = strlen(buf); |
214 | 220 | ||
215 | /* | 221 | /* |