Commit a0e76452 authored by Rand Deeb's avatar Rand Deeb Committed by openeuler-sync-bot
Browse files

net: ice: Fix potential NULL pointer dereference in ice_bridge_setlink()

stable inclusion
from stable-v5.10.213
commit 37fe99016b12d32100ce670216816dba6c48b309
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9HK2H
CVE: CVE-2024-26855

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=37fe99016b12d32100ce670216816dba6c48b309



--------------------------------

[ Upstream commit 06e456a05d669ca30b224b8ed962421770c1496c ]

The function ice_bridge_setlink() may encounter a NULL pointer dereference
if nlmsg_find_attr() returns NULL and br_spec is dereferenced subsequently
in nla_for_each_nested(). To address this issue, add a check to ensure that
br_spec is not NULL before proceeding with the nested attribute iteration.

Fixes: b1edc14a ("ice: Implement ice_bridge_getlink and ice_bridge_setlink")
Signed-off-by: default avatarRand Deeb <rand.sec96@gmail.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarZhenzeng Su <suzhenzeng@huawei.com>
(cherry picked from commit b7f8b02e)
parent b674cc2c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -6531,6 +6531,8 @@ ice_bridge_setlink(struct net_device *dev, struct nlmsghdr *nlh,
	pf_sw = pf->first_sw;
	/* find the attribute in the netlink message */
	br_spec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC);
	if (!br_spec)
		return -EINVAL;

	nla_for_each_nested(attr, br_spec, rem) {
		__u16 mode;