From: Jarek Poplawski <jarkao2@o2.pl>
To: Andrew Morton <akpm@osdl.org>
Cc: =?ISO-8859-2?Q?Malte_Schr=F6der?= <MalteSch@gmx.de>,
netdev@vger.kernel.org, netfilter-devel@lists.netfilter.org
Subject: [PATCH] netfilter: ipt_MASQUERADE: NULL check in device_cmp [BUG] panic 2.6.20-rc3 in nf_conntrack
Date: Thu, 4 Jan 2007 14:51:55 +0100 [thread overview]
Message-ID: <20070104135155.GA4682@ff.dom.local> (raw)
In-Reply-To: <20070101214000.4573f575.akpm@osdl.org>
Hello,
Below I attach a patch proposal.
Regards,
Jarek P.
---
On 02-01-2007 06:40, Andrew Morton wrote:
>
> Begin forwarded message:
>
> Date: Mon, 1 Jan 2007 17:53:04 +0100
> From: Malte Schröder <MalteSch@gmx.de>
> To: linux-kernel@vger.kernel.org
> Subject: [BUG] panic 2.6.20-rc3 in nf_conntrack
>
>
> Hello,
> I tried 2.6.20-rc3 with the new nf_nat stuff on my gateway machine with pppoe
> (ADSL) access to the internet. When I shut down my ppp0 interface the kernel
> panics. Config and dmesg are attached.
> This kernel had the ipp2p patch from patch-o-matic-ng applied, but the problem
> also happens without, so I didn't capture the panic without the patch.
>
> The machine is an athlon-xp with 512MiB ram.
> For iptables setup I use shorewall.
>
> Regards
> ---------------------------------------
> Malte Schröder
> MalteSch@gmx.de
> ICQ# 68121508
> ---------------------------------------
>
...
> ==============================================================================================
> ifdown ppp0
>
> [ 330.789466] netconsole: network logging started
> [ 336.467373] BUG: unable to handle kernel NULL pointer dereference at virtual address 0000001c
> [ 336.467513] printing eip:
> [ 336.467566] dff1605f
> [ 336.467624] *pde = 00000000
> [ 336.467687] Oops: 0000 [#1]
> [ 336.467740] Modules linked in: netconsole rpcsec_gss_krb5 auth_rpcgss nfs xfrm_user xfrm4_tunnel tunnel4 ipcomp esp4 ah4 nfsd exportfs lockd nfs_acl sunrpc autofs4 button ac battery capi capifs nf_conntrack_ipv6 ip6table_filter ip6_tables xt_mark sch_sfq act_police cls_u32 sch_ingress sch_htb ipt_ECN ipt_MASQUERADE ipt_ULOG ipt_LOG xt_state ipt_TCPMSS xt_tcpudp xt_pkttype iptable_raw xt_CLASSIFY xt_CONNMARK xt_MARK ipt_REJECT xt_length ipt_ipp2p xt_connmark ipt_owner ipt_recent ipt_iprange xt_physdev xt_policy xt_multiport xt_conntrack iptable_mangle iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nfnetlink sit iptable_filter ip_tables x_tables af_packet ipv6 deflate twofish twofish_common serpent blowfish des cbc aes xcbc sha256 md5 crypto_null hmac crypto_hash af_key ext3 jbd mbcache dm_snapshot dm_mirror dm_mod lp sha1 arc4 ecb blkcipher cryptomgr crypto_algapi ppp_mppe ppp_defla
> te zlib_deflate capidrv isdn tun pppoe pppox ppp_generic slhc tcp_cubic snd_ac97_codec ac!
> 97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd parport_pc parport soundcore b1pci b1dma b1 kernelcapi floppy pcspkr reiserfs via_rhine ehci_hcd ide_disk uhci_hcd usbcore sata_via libata scsi_mod 3c59x mii thermal processor fan unix via82cxxx ide_core
> [ 336.476053] CPU: 0
> [ 336.476055] EIP: 0060:[<dff1605f>] Not tainted VLI
> [ 336.476057] EFLAGS: 00010206 (2.6.20-rc3 #0)
> [ 336.476284] EIP is at device_cmp+0x1b/0x2e [ipt_MASQUERADE]
> [ 336.476344] eax: de6d4000 ebx: 00000000 ecx: d944b7a0 edx: dd664d48
> [ 336.476404] esi: 00000004 edi: 00001f58 ebp: 000003eb esp: de6d4e90
> [ 336.476464] ds: 007b es: 007b ss: 0068
> [ 336.476520] Process pppd (pid: 3846, ti=de6d4000 task=deda4a90 task.ti=de6d4000)
> [ 336.476580] Stack: dd664c7c dd664c84 dfe8990d 00000004 dff16044 00000000 dff16b18 c164b000
> [ 336.477024] 00000002 dff16041 c011c79f c164b000 000010d0 00001091 00000000 c01ea41a
> [ 336.477527] c164b000 c01e99d5 d98b49e0 00000000 d98b4a0c ddc100c0 c022200b c164b000
> [ 336.478030] Call Trace:
> [ 336.478132] [<dfe8990d>] nf_ct_iterate_cleanup+0x62/0xda [nf_conntrack]
> [ 336.478259] [<dff16044>] device_cmp+0x0/0x2e [ipt_MASQUERADE]
> [ 336.478366] [<dff16041>] masq_device_event+0x12/0x15 [ipt_MASQUERADE]
> [ 336.478468] [<c011c79f>] notifier_call_chain+0x19/0x29
> [ 336.478576] [<c01ea41a>] dev_close+0x5c/0x60
> [ 336.478678] [<c01e99d5>] dev_change_flags+0x47/0xe4
> [ 336.478845] [<c022200b>] devinet_ioctl+0x251/0x56e
> [ 336.478946] [<c01eaa6e>] dev_ifsioc+0x113/0x3e1
> [ 336.479046] [<c018c505>] copy_to_user+0x2d/0x44
> [ 336.479176] [<c01e12ec>] sock_ioctl+0x18e/0x1ad
> [ 336.479281] [<c01e115e>] sock_ioctl+0x0/0x1ad
> [ 336.479381] [<c0151011>] do_ioctl+0x19/0x4d
> [ 336.479482] [<c010f0ee>] do_page_fault+0x277/0x511
> [ 336.479589] [<c0151244>] vfs_ioctl+0x1ff/0x216
> [ 336.479758] [<c015128e>] sys_ioctl+0x33/0x4d
> [ 336.479861] [<c0102ab2>] sysenter_past_esp+0x5f/0x85
> [ 336.479980] =======================
> [ 336.480033] Code: 8b 51 40 b8 44 60 f1 df e8 6a 38 f7 ff 31 c0 c3 56 89 d6 8d 90 cc 00 00 00 53 31 db f6 80 8c 00 00 00 02 0f 45 da e8 4a 0a 20 e0 <39> 73 1c 0f 94 c0 0f b6 d8 e8 7a 08 20 e0 89 d8 5b 5e c3 55 31
> [ 336.483030] EIP: [<dff1605f>] device_cmp+0x1b/0x2e [ipt_MASQUERADE] SS:ESP 0068:de6d4e90
> [ 336.483183] <0>Kernel panic - not syncing: Fatal exception in interrupt
---
Subject: [PATCH] netfilter: ipt_MASQUERADE: NULL check in device_cmp
nfct_nat can return NULL so check is needed in device_cmp.
Signed-off-by: Jarek Poplawski <jarkao2@o2.pl>
---
diff -Nurp linux-2.6.20-rc3-/net/ipv4/netfilter/ipt_MASQUERADE.c linux-2.6.20-rc3/net/ipv4/netfilter/ipt_MASQUERADE.c
--- linux-2.6.20-rc3-/net/ipv4/netfilter/ipt_MASQUERADE.c 2006-12-18 09:00:00.000000000 +0100
+++ linux-2.6.20-rc3/net/ipv4/netfilter/ipt_MASQUERADE.c 2007-01-04 14:01:22.000000000 +0100
@@ -127,10 +127,12 @@ masquerade_target(struct sk_buff **pskb,
static inline int
device_cmp(struct ip_conntrack *i, void *ifindex)
{
+ int ret;
#ifdef CONFIG_NF_NAT_NEEDED
struct nf_conn_nat *nat = nfct_nat(i);
+ if (!nat)
+ return 0;
#endif
- int ret;
read_lock_bh(&masq_lock);
#ifdef CONFIG_NF_NAT_NEEDED
next prev parent reply other threads:[~2007-01-04 13:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-02 5:40 Fw: [BUG] panic 2.6.20-rc3 in nf_conntrack Andrew Morton
2007-01-04 13:51 ` Jarek Poplawski [this message]
2007-01-08 8:13 ` [PATCH] netfilter: ipt_MASQUERADE: NULL check in device_cmp " Jarek Poplawski
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=20070104135155.GA4682@ff.dom.local \
--to=jarkao2@o2.pl \
--cc=MalteSch@gmx.de \
--cc=akpm@osdl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.