net/mlx4_core: Check port out-of-range before using in mlx4_slave_cap
The range check was performed after using the port number. Reverse this to prevent a potential array overflow. Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b91cb3ebcd
commit
6230bb234d
|
@ -485,15 +485,15 @@ static int mlx4_slave_cap(struct mlx4_dev *dev)
|
|||
dev->caps.num_mgms = 0;
|
||||
dev->caps.num_amgms = 0;
|
||||
|
||||
for (i = 1; i <= dev->caps.num_ports; ++i)
|
||||
dev->caps.port_mask[i] = dev->caps.port_type[i];
|
||||
|
||||
if (dev->caps.num_ports > MLX4_MAX_PORTS) {
|
||||
mlx4_err(dev, "HCA has %d ports, but we only support %d, "
|
||||
"aborting.\n", dev->caps.num_ports, MLX4_MAX_PORTS);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
for (i = 1; i <= dev->caps.num_ports; ++i)
|
||||
dev->caps.port_mask[i] = dev->caps.port_type[i];
|
||||
|
||||
if (dev->caps.uar_page_size * (dev->caps.num_uars -
|
||||
dev->caps.reserved_uars) >
|
||||
pci_resource_len(dev->pdev, 2)) {
|
||||
|
|
Loading…
Reference in New Issue