From owner-freebsd-hackers Tue Jun 13 21:54:24 2000 Delivered-To: freebsd-hackers@freebsd.org Received: from relay.butya.kz (butya-gw.butya.kz [212.154.129.94]) by hub.freebsd.org (Postfix) with ESMTP id E74DB37C07C for ; Tue, 13 Jun 2000 21:54:17 -0700 (PDT) (envelope-from bp@butya.kz) Received: from bp (helo=localhost) by relay.butya.kz with local-esmtp (Exim 3.13 #1) id 1325Bk-000AAy-00; Wed, 14 Jun 2000 11:54:04 +0700 Date: Wed, 14 Jun 2000 11:54:04 +0700 (ALMST) From: Boris Popov To: Bosko Milekic Cc: hackers@freebsd.org Subject: Re: ether_output() : WIERD PROBLEM In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Tue, 13 Jun 2000, Bosko Milekic wrote: > What happens is that one of my daemons, for example, natd, or httpd, > etc., performs a system call, which eventually results in a call to > ether_output (following tcp_output, ip_output, etc.). At the bottom of > ether_output(), after an IF_ENQUEUE, and an splx(s), there is the > following check: > > if (m->m_flags & M_MCAST) > ifp->if_omcasts++; This is because mbuf can be not valid after splx() call. Eg, it can be already sent and freed. I've discovered this bug about 3 month ago and wonder why it still doesn't commited :) -- Boris Popov http://www.butya.kz/~bp/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message