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 {
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to