Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Jun 1995 20:40:01 -0700
From:      Dmitry Khrustalev <dima@satty.npi.msu.su>
To:        freebsd-bugs
Subject:   kern/522: 
Message-ID:  <199506160340.UAA09949@freefall.cdrom.com>
In-Reply-To: Your message of Fri, 16 Jun 1995 03:38:34 GMT <199506160338.DAA19369@satty.npi.msu.su>

next in thread | previous in thread | raw e-mail | index | archive | help

>Number:         522
>Category:       kern
>Synopsis:       
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs (FreeBSD bugs mailing list)
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 15 20:40:00 1995
>Originator:     Dmitry Khrustalev
>Organization:
Moscow State University
>Release:        FreeBSD 2.1.0-Development i386
>Environment:

	

>Description:

	If interface goes down while bpf is listening on it in promiscuous
	mode, closing bpf will panic system in bpf.c line 278.
	panic: bpf: ifpromisc failed

>How-To-Repeat:

	Start tcpdump on ppp interface while pppd is running. Terminate
	pppd. Terminating tcpdump will result in panic.

>Fix:

This fix changes current bpf behavior, however current behavior has problems:
for example if transmitting a packet results in interface going up, how do
we capture this packet?
	
*** bpf.c.orig	Fri Jun 16 06:12:07 1995
--- bpf.c	Fri Jun 16 06:12:35 1995
***************
*** 1261,1272 ****
  	int pswitch;
  {
  	struct ifreq ifr;
- 	/*
- 	 * If the device is not configured up, we cannot put it in
- 	 * promiscuous mode.
- 	 */
- 	if ((ifp->if_flags & IFF_UP) == 0)
- 		return (ENETDOWN);
  
  	if (pswitch) {
  		if (ifp->if_pcount++ != 0)
--- 1261,1266 ----

>Audit-Trail:
>Unformatted:





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