Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75c6062c authored by Eugenia Emantayev's avatar Eugenia Emantayev Committed by David S. Miller
Browse files

mlx4: fix buffer overrun



When passing MLX4_UC_STEER=1 it was translated to value 2
after mlx4_QP_ATTACH_wrapper. Therefore in new_steering_entry()
unicast steer entries were added to index 2 of array of size 2.
Fixing this bug by shift right to one position.

Signed-off-by: default avatarEugenia Emantayev <eugenia@mellanox.co.il>
Reviewed-by: default avatarYevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 33b5d30c
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -2538,7 +2538,7 @@ int mlx4_QP_ATTACH_wrapper(struct mlx4_dev *dev, int slave,
	int attach = vhcr->op_modifier;
	int attach = vhcr->op_modifier;
	int block_loopback = vhcr->in_modifier >> 31;
	int block_loopback = vhcr->in_modifier >> 31;
	u8 steer_type_mask = 2;
	u8 steer_type_mask = 2;
	enum mlx4_steer_type type = gid[7] & steer_type_mask;
	enum mlx4_steer_type type = (gid[7] & steer_type_mask) >> 1;


	qpn = vhcr->in_modifier & 0xffffff;
	qpn = vhcr->in_modifier & 0xffffff;
	err = get_res(dev, slave, qpn, RES_QP, &rqp);
	err = get_res(dev, slave, qpn, RES_QP, &rqp);