netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick McHardy <kaber@trash.net>
To: earny@net4u.de
Cc: Kernel Netdev Mailing List <netdev@vger.kernel.org>,
	Netfilter Development Mailinglist
	<netfilter-devel@lists.netfilter.org>,
	linux-kernel@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: 2.6.16-rc4 bridge/iptables Oops
Date: Mon, 20 Feb 2006 19:35:46 +0100	[thread overview]
Message-ID: <43FA0C02.8000909@trash.net> (raw)
In-Reply-To: <200602201651.50217.list-lkml@net4u.de>

[-- Attachment #1: Type: text/plain, Size: 1638 bytes --]

Ernst Herzberg wrote:
> This machine oopses one to three (or more?) times a day. Occurs since upgrading 
> from -rc3 to -rc4 (and adding/reconfiguring raid).
> 
> It is reproducable, i have only to wait 10min to a couple of hours:-)
> 
> Opps copy/pasted from a serial console, long lines maybe truncated.
> dmesg is from the _previous_ boot/oops....
> 
> -------------------------------------------
> Oops: 0000 [#1]
> PREEMPT
> Modules linked in: ebt_log ebt_ip ebtable_filter ebtables nfsd exportfs lockd sunrpc w83627hf hwmon_vid i2c_isa xt_tcpudp xt_state ipt_MASQUERADE iptable_e
> CPU:    0
> EIP:    0060:[<b033fbf3>]    Not tainted VLI
> EFLAGS: 00010282   (2.6.16-rc4 #3)
> EIP is at xfrm_lookup+0x1f/0x47d
> eax: 00000000   ebx: b0452bb4   ecx: 00000000   edx: b0452bb4
> esi: b0452c90   edi: d6c9aa58   ebp: 80000000   esp: b0452b08
> ds: 007b   es: 007b   ss: 0068
> Process vtund (pid: 12035, threadinfo=b0452000 task=ef8cb030)
> Stack: <0>b0452000 d6c9aa58 b0452bc4 00000000 f153b56a b0452b84 d6c9aa58 f1546181
>        b03e5d20 00000000 b0452bb4 b0452bb0 b0452b84 b0452b94 f1546511 d804fd24
>        d6c9aa58 b0452b94 d6c9aa58 00000000 b0452b84 f15465a6 d6c9aa58 00000000
> Call Trace:
>  [<f153b56a>] ip_conntrack_tuple_taken+0x2c/0x3e [ip_conntrack]
>  [<f1546181>] ip_nat_used_tuple+0x1f/0x2b [ip_nat]
>  [<f1546511>] get_unique_tuple+0xca/0xe6 [ip_nat]
>  [<f15465a6>] ip_nat_setup_info+0x79/0x1fd [ip_nat]
>  [<b033ac28>] ip_xfrm_me_harder+0x5d/0x14b
>  [<f154b882>] ip_nat_out+0xb2/0xde [iptable_nat]
>  [<b034d154>] br_dev_queue_push_xmit+0x0/0x12a

This patch should fix it. Please test it and report if it helps.

[-- Attachment #2: x --]
[-- Type: text/plain, Size: 1309 bytes --]

[NETFILTER]: Fix crash with bridge-netfilter in xfrm_lookup

Bridge-netfilter attaches a fake dst entry without dst->ops to bridged
packets, which makes xfrm_lookup crash. Skip the lookup since IPsec
isn't supposed to work on a pure bridge anyway.

Signed-off-by: Patrick McHardy <kaber@trash.net>

---
commit 98a533612cd7cc51482972b84ac9845a46e81bc9
tree 4b509dae626aaff8cd2e6521425d81ca0bcda1d4
parent d64d19d938ca48d1a4470010f8d48ceac28f4317
author Patrick McHardy <kaber@trash.net> Mon, 20 Feb 2006 19:34:57 +0100
committer Patrick McHardy <kaber@trash.net> Mon, 20 Feb 2006 19:34:57 +0100

 net/ipv4/netfilter.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/net/ipv4/netfilter.c b/net/ipv4/netfilter.c
index ed42cdc..ae1e75d 100644
--- a/net/ipv4/netfilter.c
+++ b/net/ipv4/netfilter.c
@@ -87,6 +87,13 @@ int ip_xfrm_me_harder(struct sk_buff **p
 
 	if (IPCB(*pskb)->flags & IPSKB_XFRM_TRANSFORMED)
 		return 0;
+#ifdef CONFIG_BRIDGE_NETFILTER
+	/* bridge netfilter attaches a fake dst entry without dst->ops to bridged
+	 * packets, which makes xfrm_lookup crash. Skip the lookup since IPsec
+	 * isn't supposed to work on a pure bridge anyway. */
+	if ((*pskb)->dst->ops == NULL)
+		return 0;
+#endif
 	if (xfrm_decode_session(*pskb, &fl, AF_INET) < 0)
 		return -1;
 

       reply	other threads:[~2006-02-20 18:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200602201651.50217.list-lkml@net4u.de>
2006-02-20 18:35 ` Patrick McHardy [this message]
2006-02-21  1:11   ` 2.6.16-rc4 bridge/iptables Oops Ernst Herzberg
2006-02-21  3:08     ` Patrick McHardy
2006-02-21  4:07       ` David S. 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=43FA0C02.8000909@trash.net \
    --to=kaber@trash.net \
    --cc=davem@davemloft.net \
    --cc=earny@net4u.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@lists.netfilter.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).