Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jul 2010 17:46:12 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r209633 - head/sys/netgraph
Message-ID:  <201007011746.o61HkCr4039771@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: glebius
Date: Thu Jul  1 17:46:12 2010
New Revision: 209633
URL: http://svn.freebsd.org/changeset/base/209633

Log:
  The struct ipfw_rule_ref follows the struct m_tag. Deal with this
  correctly. This fixes breakage of ng_ipfw(4) in r201527.
  
  Submitted by:	Alexander Zagrebin <alexz visp.ru>

Modified:
  head/sys/netgraph/ng_ipfw.c

Modified: head/sys/netgraph/ng_ipfw.c
==============================================================================
--- head/sys/netgraph/ng_ipfw.c	Thu Jul  1 17:44:33 2010	(r209632)
+++ head/sys/netgraph/ng_ipfw.c	Thu Jul  1 17:46:12 2010	(r209633)
@@ -221,20 +221,21 @@ ng_ipfw_findhook1(node_p node, u_int16_t
 static int
 ng_ipfw_rcvdata(hook_p hook, item_p item)
 {
-	struct ipfw_rule_ref	*tag;
+	struct m_tag *tag;
+	struct ipfw_rule_ref *r;
 	struct mbuf *m;
 
 	NGI_GET_M(item, m);
 	NG_FREE_ITEM(item);
 
-	tag = (struct ipfw_rule_ref *)
-		m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL);
+	tag = m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL);
 	if (tag == NULL) {
 		NG_FREE_M(m);
 		return (EINVAL);	/* XXX: find smth better */
 	};
 
-	if (tag->info & IPFW_INFO_IN) {
+	r = (struct ipfw_rule_ref *)(tag + 1);
+	if (r->info & IPFW_INFO_IN) {
 		ip_input(m);
 		return (0);
 	} else {



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