Commit 6230bb23 authored by Jack Morgenstein's avatar Jack Morgenstein Committed by David S. Miller

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: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b91cb3eb
...@@ -485,15 +485,15 @@ static int mlx4_slave_cap(struct mlx4_dev *dev) ...@@ -485,15 +485,15 @@ static int mlx4_slave_cap(struct mlx4_dev *dev)
dev->caps.num_mgms = 0; dev->caps.num_mgms = 0;
dev->caps.num_amgms = 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) { if (dev->caps.num_ports > MLX4_MAX_PORTS) {
mlx4_err(dev, "HCA has %d ports, but we only support %d, " mlx4_err(dev, "HCA has %d ports, but we only support %d, "
"aborting.\n", dev->caps.num_ports, MLX4_MAX_PORTS); "aborting.\n", dev->caps.num_ports, MLX4_MAX_PORTS);
return -ENODEV; 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 - if (dev->caps.uar_page_size * (dev->caps.num_uars -
dev->caps.reserved_uars) > dev->caps.reserved_uars) >
pci_resource_len(dev->pdev, 2)) { pci_resource_len(dev->pdev, 2)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment