Commit a7789fd4 authored by Jeongjun Park's avatar Jeongjun Park Committed by Jakub Kicinski
Browse files

net: hsr: prevent NULL pointer dereference in hsr_proxy_announce()



In the function hsr_proxy_annouance() added in the previous commit
5f703ce5 ("net: hsr: Send supervisory frames to HSR network
with ProxyNodeTable data"), the return value of the hsr_port_get_hsr()
function is not checked to be a NULL pointer, which causes a NULL
pointer dereference.

To solve this, we need to add code to check whether the return value
of hsr_port_get_hsr() is NULL.

Reported-by: default avatar <syzbot+02a42d9b1bd395cbcab4@syzkaller.appspotmail.com>
Fixes: 5f703ce5 ("net: hsr: Send supervisory frames to HSR network with ProxyNodeTable data")
Signed-off-by: default avatarJeongjun Park <aha310510@gmail.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Acked-by: default avatarLukasz Majewski <lukma@denx.de>
Link: https://patch.msgid.link/20240907190341.162289-1-aha310510@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 62540317
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -414,6 +414,9 @@ static void hsr_proxy_announce(struct timer_list *t)
	 * of SAN nodes stored in ProxyNodeTable.
	 */
	interlink = hsr_port_get_hsr(hsr, HSR_PT_INTERLINK);
	if (!interlink)
		goto done;

	list_for_each_entry_rcu(node, &hsr->proxy_node_db, mac_list) {
		if (hsr_addr_is_redbox(hsr, node->macaddress_A))
			continue;
@@ -428,6 +431,7 @@ static void hsr_proxy_announce(struct timer_list *t)
		mod_timer(&hsr->announce_proxy_timer, jiffies + interval);
	}

done:
	rcu_read_unlock();
}