OSDN Git Service

hsr: Add a rcu-read lock to hsr_forward_skb().
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Tue, 29 Nov 2022 16:48:09 +0000 (17:48 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 2 Dec 2022 04:26:21 +0000 (20:26 -0800)
commit5aa2820177af650293b2f9f1873c1f6f8e4ad7a4
tree41d0ba065d1e740895121a095a1811a42bb565c1
parente012764cebf6e33097f6833ff15a936fbe7b846c
hsr: Add a rcu-read lock to hsr_forward_skb().

hsr_forward_skb() a skb and keeps information in an on-stack
hsr_frame_info. hsr_get_node() assigns hsr_frame_info::node_src which is
from a RCU list. This pointer is used later in hsr_forward_do().
I don't see a reason why this pointer can't vanish midway since there is
no guarantee that hsr_forward_skb() is invoked from an RCU read section.

Use rcu_read_lock() to protect hsr_frame_info::node_src from its
assignment until it is no longer used.

Fixes: f266a683a4804 ("net/hsr: Better frame dispatch")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/hsr/hsr_forward.c