diff options
author | bms <bms@FreeBSD.org> | 2007-02-09 12:35:29 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2007-02-09 12:35:29 +0000 |
commit | 153d14aa8aa84564cf83b657feec5b2819aec659 (patch) | |
tree | d2322a016d06721a03485eabe486163c6ce00800 /sys/netgraph | |
parent | f171a45bf6af7963d86cf7de4a3b9e19b8205c06 (diff) | |
download | FreeBSD-src-153d14aa8aa84564cf83b657feec5b2819aec659.zip FreeBSD-src-153d14aa8aa84564cf83b657feec5b2819aec659.tar.gz |
In the output path, mask off M_BCAST|M_MCAST so as to prevent incorrect
addressing if a packet is later re-encapsulated and sent to a
non-broadcast, non-multicast destination after being received on the
ng_ksocket input hook.
PR: 106999
Submitted by: Kevin Lahey
MFC after: 4 weeks
Diffstat (limited to 'sys/netgraph')
-rw-r--r-- | sys/netgraph/ng_ksocket.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netgraph/ng_ksocket.c b/sys/netgraph/ng_ksocket.c index 3e702d0..d3fb8a4 100644 --- a/sys/netgraph/ng_ksocket.c +++ b/sys/netgraph/ng_ksocket.c @@ -919,6 +919,9 @@ ng_ksocket_rcvdata(hook_p hook, item_p item) (stag->id == NG_NODE_ID(node) || stag->id == 0)) sa = &stag->sa; + /* Reset specific mbuf flags to prevent addressing problems. */ + m->m_flags &= ~(M_BCAST|M_MCAST); + /* Send packet */ error = sosend(so, sa, 0, m, 0, 0, td); |