Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Dec 2009 18:04:27 +0000 (UTC)
From:      Luigi Rizzo <luigi@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r200183 - head/sbin/ipfw
Message-ID:  <200912061804.nB6I4R38027652@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: luigi
Date: Sun Dec  6 18:04:26 2009
New Revision: 200183
URL: http://svn.freebsd.org/changeset/base/200183

Log:
  restore setting of sin_len (was removed in 1.146 last february) as
  it seems that now it is necessary for 'forward' to work outside lo0.
  The bug (and fix) was reported on 8.0. This patch probably applies
  to RELENG_7 as well.
  It seems that 'pf' has a similar bug.
  
  Submitted by:	Lytochkin Boris
  MFC after:	3 days

Modified:
  head/sbin/ipfw/ipfw2.c

Modified: head/sbin/ipfw/ipfw2.c
==============================================================================
--- head/sbin/ipfw/ipfw2.c	Sun Dec  6 17:26:43 2009	(r200182)
+++ head/sbin/ipfw/ipfw2.c	Sun Dec  6 18:04:26 2009	(r200183)
@@ -2740,9 +2740,11 @@ chkarg:	
 
 		/*
 		 * In the kernel we assume AF_INET and use only
-		 * sin_port and sin_addr.
+		 * sin_port and sin_addr. Remember to set sin_len as
+		 * the routing code seems to use it too.
 		 */
 		p->sa.sin_family = AF_INET;
+		p->sa.sin_len = sizeof(struct sockaddr_in);
 		p->sa.sin_port = 0;
 		/*
 		 * locate the address-port separator (':' or ',')



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912061804.nB6I4R38027652>