summaryrefslogtreecommitdiffstats
path: root/sys/netgraph
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2007-02-09 12:35:29 +0000
committerbms <bms@FreeBSD.org>2007-02-09 12:35:29 +0000
commit153d14aa8aa84564cf83b657feec5b2819aec659 (patch)
treed2322a016d06721a03485eabe486163c6ce00800 /sys/netgraph
parentf171a45bf6af7963d86cf7de4a3b9e19b8205c06 (diff)
downloadFreeBSD-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.c3
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);
OpenPOWER on IntegriCloud