From owner-p4-projects@FreeBSD.ORG Sun Aug 16 19:35:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 760921065692; Sun, 16 Aug 2009 19:35:31 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A684106568D for ; Sun, 16 Aug 2009 19:35:31 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29A328FC3F for ; Sun, 16 Aug 2009 19:35:31 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GJZV4C012061 for ; Sun, 16 Aug 2009 19:35:31 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GJZVEF012059 for perforce@freebsd.org; Sun, 16 Aug 2009 19:35:31 GMT (envelope-from bz@freebsd.org) Date: Sun, 16 Aug 2009 19:35:31 GMT Message-Id: <200908161935.n7GJZVEF012059@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167412 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Aug 2009 19:35:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=167412 Change 167412 by bz@bz_zoo on 2009/08/16 19:35:30 Use m_copyback() to add the data to the mbuf rather than having an implicit memory assumption that the additional payload will either fit into the mbuf already there or an additional of size MT_DATA (256 bytes). This should solve memory corruptions in the mbuf of the next chunk of memory. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#17 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#17 (text+ko) ==== @@ -1276,6 +1276,8 @@ * NB: we assume m is a single mbuf. */ + m_copyback(m, m->m_len, data_len, data); +#if 0 if (data_len > M_TRAILINGSPACE(m)) { struct mbuf *n = m_get(M_NOWAIT, MT_DATA); if (n == NULL) { @@ -1299,6 +1301,7 @@ } if (m->m_flags & M_PKTHDR) m->m_pkthdr.len += data_len; +#endif printf("prije mtod!\n"); mtod(m, struct if_announcemsghdr *)->ifan_msglen += data_len; printf("prije rt_dispatch\n");