Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Apr 2013 18:40:01 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-ipfw@FreeBSD.org
Subject:   Re: kern/157796: commit references a PR
Message-ID:  <201304241840.r3OIe1AR069710@freefall.freebsd.org>

Next in thread | Raw E-Mail | Index | Archive | Help
The following reply was made to PR kern/157796; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/157796: commit references a PR
Date: Wed, 24 Apr 2013 18:30:40 +0000 (UTC)

 Author: rrs
 Date: Wed Apr 24 18:30:32 2013
 New Revision: 249848
 URL: http://svnweb.freebsd.org/changeset/base/249848
 
 Log:
   This fixes the issue with the "randomly changing" default
   route. What it was is there are two places in ip_output.c
   where we do a goto again. One place was fine, it
   copies out the new address and then resets dst = ro->rt_dst;
   But the other place does *not* do that, which means earlier
   when we found the gateway, we have dst pointing there
   aka dst = ro->rt_gateway is done.. then we do a
   goto again.. bam now we clobber the default route.
   
   The fix is just to move the again so we are always
   doing dst = &ro->rt_dst; in the again loop.
   
   PR:	 174749,157796
   MFC after:	1 week
 
 Modified:
   head/sys/netinet/ip_output.c
 
 Modified: head/sys/netinet/ip_output.c
 ==============================================================================
 --- head/sys/netinet/ip_output.c	Wed Apr 24 18:00:28 2013	(r249847)
 +++ head/sys/netinet/ip_output.c	Wed Apr 24 18:30:32 2013	(r249848)
 @@ -196,8 +196,8 @@ ip_output(struct mbuf *m, struct mbuf *o
  		hlen = ip->ip_hl << 2;
  	}
  
 -	dst = (struct sockaddr_in *)&ro->ro_dst;
  again:
 +	dst = (struct sockaddr_in *)&ro->ro_dst;
  	ia = NULL;
  	/*
  	 * If there is a cached route,
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 



Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?201304241840.r3OIe1AR069710>