From: David Miller <davem@davemloft.net>
To: herbert@gondor.apana.org.au
Cc: eric.dumazet@gmail.com, bandan.das@stratus.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
kaber@trash.net
Subject: Re: [PATCH net-next-2.6] net/ipv4: push IP options to CB in ip_fragment
Date: Wed, 01 Sep 2010 18:09:22 -0700 (PDT) [thread overview]
Message-ID: <20100901.180922.163252387.davem@davemloft.net> (raw)
In-Reply-To: <20100901233056.GA15177@gondor.apana.org.au>
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Thu, 2 Sep 2010 07:30:56 +0800
> On Wed, Sep 01, 2010 at 02:46:58PM -0700, David Miller wrote:
> .
>> Therefore I'm inclined to agree with Herbert that we need to parse the
>> options explicitly before invoke ip_fragment(). We must call it with
>> an SKB in the state it expects, and that means with options parsing
>> already performed.
>
> FWIW the packet probably doesn't even have IP options. What is
> happening here is that we've found yet another entry point from
> the bridge driver into the IP stack so we need to duplicate my
> original patch here.
With that in mind I'm going to commit the following and
queue it up to -stable too.
Thanks.
--------------------
bridge: Clear INET control block of SKBs passed into ip_fragment().
In a similar vain to commit 17762060c25590bfddd68cc1131f28ec720f405f
("bridge: Clear IPCB before possible entry into IP stack")
Any time we call into the IP stack we have to make sure the state
there is as expected by the ipv4 code.
With help from Eric Dumazet and Herbert Xu.
Reported-by: Brandan Das <brandan.das@stratus.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
net/bridge/br_netfilter.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c
index 5ed00bd..137f232 100644
--- a/net/bridge/br_netfilter.c
+++ b/net/bridge/br_netfilter.c
@@ -761,9 +761,11 @@ static int br_nf_dev_queue_xmit(struct sk_buff *skb)
{
if (skb->nfct != NULL && skb->protocol == htons(ETH_P_IP) &&
skb->len + nf_bridge_mtu_reduction(skb) > skb->dev->mtu &&
- !skb_is_gso(skb))
+ !skb_is_gso(skb)) {
+ /* BUG: Should really parse the IP options here. */
+ memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
return ip_fragment(skb, br_dev_queue_push_xmit);
- else
+ } else
return br_dev_queue_push_xmit(skb);
}
#else
--
1.7.2.2
next prev parent reply other threads:[~2010-09-02 1:09 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-30 20:09 [PATCH net-next-2.6] net/ipv4: push IP options to CB in ip_fragment Bandan Das
2010-08-30 21:35 ` Eric Dumazet
2010-08-30 23:21 ` Bandan Das
2010-08-31 5:20 ` Eric Dumazet
2010-08-31 8:24 ` Herbert Xu
2010-08-31 9:17 ` Eric Dumazet
2010-08-31 12:36 ` Herbert Xu
2010-08-31 13:13 ` Eric Dumazet
2010-08-31 13:50 ` Bandan Das
2010-09-01 16:57 ` Bandan Das
2010-09-03 4:49 ` Herbert Xu
2010-09-15 17:32 ` Bandan Das
2010-09-17 6:51 ` Herbert Xu
2010-09-17 23:43 ` David Miller
2010-09-19 19:36 ` Bandan Das
2010-09-01 21:46 ` David Miller
2010-09-01 23:30 ` Herbert Xu
2010-09-02 1:09 ` David Miller [this message]
2010-09-02 2:05 ` Bandan Das
2010-09-02 2:17 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100901.180922.163252387.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=bandan.das@stratus.com \
--cc=eric.dumazet@gmail.com \
--cc=herbert@gondor.apana.org.au \
--cc=kaber@trash.net \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).