[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: kernel/1472: crash - caused by path MTU discovery?



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