net: dsa: bcm_sf2: potential array overflow in bcm_sf2_sw_suspend()
The value of ->num_ports comes from bcm_sf2_sw_probe() and it is less
than or equal to DSA_MAX_PORTS. The ds->ports[] array is used inside
the dsa_is_user_port() and dsa_is_cpu_port() functions. The ds->ports[]
array is allocated in dsa_switch_alloc() and it has ds->num_ports
elements so this leads to a static checker warning about a potential out
of bounds read.
Fixes: 8cfa94984c
("net: dsa: bcm_sf2: add suspend/resume callbacks")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5bf325a532
commit
8d6ea93285
|
@ -690,7 +690,7 @@ static int bcm_sf2_sw_suspend(struct dsa_switch *ds)
|
|||
* port, the other ones have already been disabled during
|
||||
* bcm_sf2_sw_setup
|
||||
*/
|
||||
for (port = 0; port < DSA_MAX_PORTS; port++) {
|
||||
for (port = 0; port < ds->num_ports; port++) {
|
||||
if (dsa_is_user_port(ds, port) || dsa_is_cpu_port(ds, port))
|
||||
bcm_sf2_port_disable(ds, port, NULL);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue