aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2005-04-20 01:32:22 -0400
committerDavid S. Miller <davem@davemloft.net>2005-04-20 01:32:22 -0400
commit3320da8906d8a7277ef54fd1b3646f85354cb66a (patch)
tree97b9e465bc72ed95a0d3959cf0abb3786f9d7517
parent357b40a18b04c699da1d45608436e9b76b50e251 (diff)
[IPV6]: Replace bogus instances of inet->recverr
While looking at this problem I noticed that IPv6 was sometimes looking at inet->recverr which is bogus. Here is a patch to correct that and use np->recverr. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Acked-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv6/ip6_output.c2
-rw-r--r--net/ipv6/raw.c6
2 files changed, 3 insertions, 5 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 49208ba75094..0f0711417c9d 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1149,7 +1149,7 @@ int ip6_push_pending_frames(struct sock *sk)
1149 err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, skb->dst->dev, dst_output); 1149 err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, skb->dst->dev, dst_output);
1150 if (err) { 1150 if (err) {
1151 if (err > 0) 1151 if (err > 0)
1152 err = inet->recverr ? net_xmit_errno(err) : 0; 1152 err = np->recverr ? net_xmit_errno(err) : 0;
1153 if (err) 1153 if (err)
1154 goto error; 1154 goto error;
1155 } 1155 }
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index 3e2ad0a70412..1352c1d9bf4d 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -533,7 +533,7 @@ static int rawv6_send_hdrinc(struct sock *sk, void *from, int length,
533 struct flowi *fl, struct rt6_info *rt, 533 struct flowi *fl, struct rt6_info *rt,
534 unsigned int flags) 534 unsigned int flags)
535{ 535{
536 struct inet_sock *inet = inet_sk(sk); 536 struct ipv6_pinfo *np = inet6_sk(sk);
537 struct ipv6hdr *iph; 537 struct ipv6hdr *iph;
538 struct sk_buff *skb; 538 struct sk_buff *skb;
539 unsigned int hh_len; 539 unsigned int hh_len;
@@ -570,7 +570,7 @@ static int rawv6_send_hdrinc(struct sock *sk, void *from, int length,
570 err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, rt->u.dst.dev, 570 err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, rt->u.dst.dev,
571 dst_output); 571 dst_output);
572 if (err > 0) 572 if (err > 0)
573 err = inet->recverr ? net_xmit_errno(err) : 0; 573 err = np->recverr ? net_xmit_errno(err) : 0;
574 if (err) 574 if (err)
575 goto error; 575 goto error;
576out: 576out:
@@ -807,8 +807,6 @@ done:
807 ip6_dst_store(sk, dst, 807 ip6_dst_store(sk, dst,
808 ipv6_addr_equal(&fl.fl6_dst, &np->daddr) ? 808 ipv6_addr_equal(&fl.fl6_dst, &np->daddr) ?
809 &np->daddr : NULL); 809 &np->daddr : NULL);
810 if (err > 0)
811 err = np->recverr ? net_xmit_errno(err) : 0;
812 810
813 release_sock(sk); 811 release_sock(sk);
814out: 812out: