[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: kernel/1472: crash - caused by path MTU discovery?
- To: bugs_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org
- Subject: Re: kernel/1472: crash - caused by path MTU discovery?
- From: Aaron Campbell <aaron_(_at_)_monkey_(_dot_)_org>
- Date: Wed, 25 Oct 2000 14:50:02 -0600 (MDT)
- Cc:
- Reply-to: Aaron Campbell <aaron_(_at_)_monkey_(_dot_)_org>
The following reply was made to PR kernel/1472; it has been noted by GNATS.
From: Aaron Campbell <aaron_(_at_)_monkey_(_dot_)_org>
To: Andreas Gunnarsson <andreas_(_at_)_crt_(_dot_)_se>
Cc: gnats_(_at_)_openbsd_(_dot_)_org, GNATS Management <gnats_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org>,
bugs_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org
Subject: Re: kernel/1472: crash - caused by path MTU discovery?
Date: Wed, 25 Oct 2000 16:45:30 -0400 (EDT)
On Wed, 25 Oct 2000, Andreas Gunnarsson wrote:
> uvm_fault(0xe0442c08,0x0,0,1) -> 5
> kernel: page fault trap, code=0
> Stopped at _ip_output+0x6c8: movl 0(%edx),%eax
> ddb> trace
> _ip_output(e0aa7300,0,0,400,0) at _ip_output_0x6c8
The problem seems to be that the current Path MTU code fragment in
ip_output() assumes that 'ro' is initialized. In the IPSEC case this
is not necessarily true.
Please try the following patch and reply with your results. Thanks.
Index: sys/netinet/ip_output.c
===================================================================
RCS file: /cvs/src/sys/netinet/ip_output.c,v
retrieving revision 1.82
diff -u -r1.82 ip_output.c
--- sys/netinet/ip_output.c 2000/09/29 03:51:11 1.82
+++ sys/netinet/ip_output.c 2000/10/25 20:41:46
@@ -532,7 +532,7 @@
* If we're doing Path MTU discovery, we need to set DF unless
* the route's MTU is locked.
*/
- if ((flags & IP_MTUDISC) && ro->ro_rt &&
+ if ((flags & IP_MTUDISC) && ro && ro->ro_rt &&
(ro->ro_rt->rt_rmx.rmx_locks & RTV_MTU) == 0)
ip->ip_off |= IP_DF;
Visit your host, monkey.org