summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/rlimits
diff options
context:
space:
mode:
authorJunrui Luo <moonafterrain@outlook.com>2026-02-24 19:05:56 +0800
committerPaolo Abeni <pabeni@redhat.com>2026-02-26 12:37:21 +0100
commit8a5752c6dcc085a3bfc78589925182e4e98468c5 (patch)
treef4d97a756c954a144b771498b1c196c53cf167ff /tools/testing/selftests/rlimits
parent7aa767d0d3d04e50ae94e770db7db8197f666970 (diff)
dpaa2-switch: validate num_ifs to prevent out-of-bounds write
The driver obtains sw_attr.num_ifs from firmware via dpsw_get_attributes() but never validates it against DPSW_MAX_IF (64). This value controls iteration in dpaa2_switch_fdb_get_flood_cfg(), which writes port indices into the fixed-size cfg->if_id[DPSW_MAX_IF] array. When firmware reports num_ifs >= 64, the loop can write past the array bounds. Add a bound check for num_ifs in dpaa2_switch_init(). dpaa2_switch_fdb_get_flood_cfg() appends the control interface (port num_ifs) after all matched ports. When num_ifs == DPSW_MAX_IF and all ports match the flood filter, the loop fills all 64 slots and the control interface write overflows by one entry. The check uses >= because num_ifs == DPSW_MAX_IF is also functionally broken. build_if_id_bitmap() silently drops any ID >= 64: if (id[i] < DPSW_MAX_IF) bmap[id[i] / 64] |= ... Fixes: 539dda3c5d19 ("staging: dpaa2-switch: properly setup switching domains") Signed-off-by: Junrui Luo <moonafterrain@outlook.com> Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> Link: https://patch.msgid.link/SYBPR01MB78812B47B7F0470B617C408AAF74A@SYBPR01MB7881.ausprd01.prod.outlook.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'tools/testing/selftests/rlimits')
0 files changed, 0 insertions, 0 deletions