[haiku-commits] r34691 - haiku/trunk/src/libs/compat/freebsd_network

  • From: mmlr@xxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 18 Dec 2009 19:00:12 +0100 (CET)

Author: mmlr
Date: 2009-12-18 19:00:11 +0100 (Fri, 18 Dec 2009)
New Revision: 34691
Changeset: http://dev.haiku-os.org/changeset/34691/haiku
Ticket: http://dev.haiku-os.org/ticket/5089

Modified:
   haiku/trunk/src/libs/compat/freebsd_network/mbuf.c
Log:
Also call construct_mbuf() from m_getjcl() as it initializes the mbuf fields. It
also handles the M_PKTHDR flag. Before, the uninitialized fields could be left 
over
from earlier freed mbufs and on m_freem previous m_next fields could be returned
resulting in random mbufs being freed. This makes the iprowifi4965 work and 
fixes
#5089.


Modified: haiku/trunk/src/libs/compat/freebsd_network/mbuf.c
===================================================================
--- haiku/trunk/src/libs/compat/freebsd_network/mbuf.c  2009-12-18 15:05:37 UTC 
(rev 34690)
+++ haiku/trunk/src/libs/compat/freebsd_network/mbuf.c  2009-12-18 18:00:11 UTC 
(rev 34691)
@@ -188,11 +188,11 @@
                (struct mbuf *)object_cache_alloc(sMBufCache, 
m_to_oc_flags(how));
        if (mb == NULL)
                return NULL;
+       construct_mbuf(mb, type, flags);
        if (construct_ext_sized_mbuf(mb, how, size) < 0) {
                object_cache_free(sMBufCache, mb);
                return NULL;
        }
-       mb->m_flags |= flags;
        return mb;
 }
 


Other related posts:

  • » [haiku-commits] r34691 - haiku/trunk/src/libs/compat/freebsd_network - mmlr