Date: 25 Oct 2003 20:01:10 -0000 From: Max Laier <max@love2party.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/58537: netinet/if_ethersubr.c rev. 1.117+ Message-ID: <20031025200110.85336.qmail@vampire.homelinux.org> Resent-Message-ID: <200310252000.h9PK0WtV072875@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 58537 >Category: kern >Synopsis: netinet/if_ethersubr.c rev. 1.117+ >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Oct 25 13:00:32 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Max Laier >Release: FreeBSD 5.1-RELEASE-p10 i386 >Organization: >Environment: System: FreeBSD router.laiers.local 5.1-RELEASE-p10 FreeBSD 5.1-RELEASE-p10 #1: Sun Oct 5 17:38:55 CEST 2003 root@router.laiers.local:/usr/obj/usr/src/sys/ALTQ i386 >Description: The check if an ethernet packet is for the device it was recieved on was made disfunctional with rev. 1.117: if ((exp) != 0 && ... && (exp) == 0) is always FALSE! where exp here is: (ifp->if_flags & IFF_PROMISC) >How-To-Repeat: Not sure, seems to work okay without that extra sanity check. >Fix: Patch (remove unwanted part): --- if_ethersubr.c.diff begins here --- --- if_ethersubr.c.orig Sat Oct 25 21:52:36 2003 +++ if_ethersubr.c Sat Oct 25 21:54:15 2003 @@ -638,8 +638,7 @@ if ((ifp->if_flags & IFF_PROMISC) != 0 && (eh->ether_dhost[0] & 1) == 0 && bcmp(eh->ether_dhost, - IFP2AC(ifp)->ac_enaddr, ETHER_ADDR_LEN) != 0 - && (ifp->if_flags & IFF_PPROMISC) == 0) { + IFP2AC(ifp)->ac_enaddr, ETHER_ADDR_LEN) != 0) { m_freem(m); return; } --- if_ethersubr.c.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031025200110.85336.qmail>