linux-brain/drivers/net/ethernet/qlogic
Kees Cook 7086619922 net: qed: Fix memcpy() overflow of qed_dcbx_params()
[ Upstream commit 1c200f832e14420fa770193f9871f4ce2df00d07 ]

The source (&dcbx_info->operational.params) and dest
(&p_hwfn->p_dcbx_info->set.config.params) are both struct qed_dcbx_params
(560 bytes), not struct qed_dcbx_admin_params (564 bytes), which is used
as the memcpy() size.

However it seems that struct qed_dcbx_operational_params
(dcbx_info->operational)'s layout matches struct qed_dcbx_admin_params
(p_hwfn->p_dcbx_info->set.config)'s 4 byte difference (3 padding, 1 byte
for "valid").

On the assumption that the size is wrong (rather than the source structure
type), adjust the memcpy() size argument to be 4 bytes smaller and add
a BUILD_BUG_ON() to validate any changes to the structure sizes.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-06-30 08:47:49 -04:00
..
netxen netxen_nic: Fix an error handling path in 'netxen_nic_probe()' 2021-06-23 14:41:25 +02:00
qed net: qed: Fix memcpy() overflow of qed_dcbx_params() 2021-06-30 08:47:49 -04:00
qede qede: fix offload for IPIP tunnel packets 2021-01-12 20:16:12 +01:00
qlcnic qlcnic: Fix an error handling path in 'qlcnic_probe()' 2021-06-23 14:41:25 +02:00
Kconfig qed: select CONFIG_CRC32 2021-01-17 14:05:36 +01:00
Makefile qlge: Move drivers/net/ethernet/qlogic/qlge/ to drivers/staging/qlge/ 2019-07-23 11:29:40 -07:00
qla3xxx.c net/qla3xxx: fix schedule while atomic in ql_sem_spinlock 2021-06-16 11:59:35 +02:00
qla3xxx.h