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

Commit 6e3cd5fa authored by Venkat Duvvuru's avatar Venkat Duvvuru Committed by David S. Miller
Browse files

be2net: Avoid accessing eq object in be_msix_register routine, when i < 0.



When the first request_irq fails in be_msix_register, i value
would be zero. The current code decrements the i value and
accesses the eq object without validating the decremented
"i" value. This can cause an "invalid memory address access"
violation.

This patch fixes the problem by accessing the eq object after
validating the "i" value.

Signed-off-by: default avatarVenkat Duvvuru <venkatkumar.duvvuru@avagotech.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6be842f7
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3299,8 +3299,10 @@ static int be_msix_register(struct be_adapter *adapter)

	return 0;
err_msix:
	for (i--, eqo = &adapter->eq_obj[i]; i >= 0; i--, eqo--)
	for (i--; i >= 0; i--) {
		eqo = &adapter->eq_obj[i];
		free_irq(be_msix_vec_get(adapter, eqo), eqo);
	}
	dev_warn(&adapter->pdev->dev, "MSIX Request IRQ failed - err %d\n",
		 status);
	be_msix_disable(adapter);