diff options
author | Daniel Hartmeier <dhartmei@cvs.openbsd.org> | 2003-08-18 11:01:42 +0000 |
---|---|---|
committer | Daniel Hartmeier <dhartmei@cvs.openbsd.org> | 2003-08-18 11:01:42 +0000 |
commit | 537fe9c0ea801f86b1002033d79dccddaa6b283c (patch) | |
tree | 34a8c3bd738504e02748e000ad30f86e0fd6079f /sys/net/if_fddisubr.c | |
parent | b70b3b7d7332656d3fa96108aad1ec74228ecc8a (diff) |
prevent looutput() feedback of broadcast/multicast packets if they are
pf routed. prevents a kernel lockup with some (non-sensical) route-to
rules. report and debugging by mpech@. ok itojun@, henning@, mpech@.
Diffstat (limited to 'sys/net/if_fddisubr.c')
-rw-r--r-- | sys/net/if_fddisubr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c index 2671c698f39..a92f244a358 100644 --- a/sys/net/if_fddisubr.c +++ b/sys/net/if_fddisubr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_fddisubr.c,v 1.32 2003/06/02 23:28:12 millert Exp $ */ +/* $OpenBSD: if_fddisubr.c,v 1.33 2003/08/18 11:01:41 dhartmei Exp $ */ /* $NetBSD: if_fddisubr.c,v 1.5 1996/05/07 23:20:21 christos Exp $ */ /* @@ -202,7 +202,8 @@ fddi_output(ifp, m0, dst, rt0) if (!arpresolve(ac, rt, m, dst, edst)) return (0); /* if not yet resolved */ /* If broadcasting on a simplex interface, loopback a copy */ - if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX)) + if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX) && + m_tag_find(m, PACKET_TAG_PF_ROUTED, NULL) == NULL) mcopy = m_copy(m, 0, (int)M_COPYALL); type = htons(ETHERTYPE_IP); break; |