net/mlx4: off by one in parse_trans_rule()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 10 Jul 2012 20:33:36 +0000 (20:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Jul 2012 05:57:43 +0000 (22:57 -0700)
This should be ">=" here instead of ">".  MLX4_NET_TRANS_RULE_NUM is 6.
We use "spec->id" as an array offset into the __rule_hw_sz[] and
__sw_id_hw[] arrays which have 6 elements.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Hadar Hen Zion <hadarh@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/mcg.c

index bc62f536ffaeaac3dcdbaa48501792b4116f1ef7..5bac0dfafbd866bb15b84534d708007455cf3396 100644 (file)
@@ -773,7 +773,7 @@ static int parse_trans_rule(struct mlx4_dev *dev, struct mlx4_spec_list *spec,
                [MLX4_NET_TRANS_RULE_ID_UDP] =
                        sizeof(struct mlx4_net_trans_rule_hw_tcp_udp)
        };
-       if (spec->id > MLX4_NET_TRANS_RULE_NUM) {
+       if (spec->id >= MLX4_NET_TRANS_RULE_NUM) {
                mlx4_err(dev, "Invalid network rule id. id = %d\n", spec->id);
                return -EINVAL;
        }