Patch "net: bridge: clear bridge's private skb space on xmit" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: bridge: clear bridge's private skb space on xmit

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 1b7d453d70d48cbe94d4852b59f35f360480fe85
Author: Nikolay Aleksandrov <razor@xxxxxxxxxxxxx>
Date:   Fri Jul 31 19:26:16 2020 +0300

    net: bridge: clear bridge's private skb space on xmit
    
    [ Upstream commit fd65e5a95d08389444e8591a20538b3edece0e15 ]
    
    We need to clear all of the bridge private skb variables as they can be
    stale due to the packet being recirculated through the stack and then
    transmitted through the bridge device. Similar memset is already done on
    bridge's input. We've seen cases where proxyarp_replied was 1 on routed
    multicast packets transmitted through the bridge to ports with neigh
    suppress which were getting dropped. Same thing can in theory happen with
    the port isolation bit as well.
    
    Fixes: 821f1b21cabb ("bridge: add new BR_NEIGH_SUPPRESS port flag to suppress arp and nd flood")
    Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index f085b1648e66c..501f77f0f480a 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -35,6 +35,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev)
 	const unsigned char *dest;
 	u16 vid = 0;
 
+	memset(skb->cb, 0, sizeof(struct br_input_skb_cb));
+
 	rcu_read_lock();
 	nf_ops = rcu_dereference(nf_br_ops);
 	if (nf_ops && nf_ops->br_dev_xmit_hook(skb)) {




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux