diff mbox series

qede: Fix memset corruption

Message ID 20210824165249.7063-1-smalin@marvell.com
State New
Headers show
Series qede: Fix memset corruption | expand

Commit Message

Shai Malin Aug. 24, 2021, 4:52 p.m. UTC
Thanks to Kees Cook who detected the problem of memset that starting
from not the first member, but sized for the whole struct.
The better change will be to remove the redundant memset and to clear
only the msix_cnt member.

Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
Signed-off-by: Shai Malin <smalin@marvell.com>
---
 drivers/net/ethernet/qlogic/qede/qede_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kees Cook Aug. 25, 2021, 2:19 a.m. UTC | #1
On Tue, Aug 24, 2021 at 07:52:49PM +0300, Shai Malin wrote:
> Thanks to Kees Cook who detected the problem of memset that starting

> from not the first member, but sized for the whole struct.

> The better change will be to remove the redundant memset and to clear

> only the msix_cnt member.


Okay, thanks. It wasn't clear if this needs to be _only_ the msix_cnt
member or something else.

> 

> Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>

> Signed-off-by: Ariel Elior <aelior@marvell.com>

> Signed-off-by: Shai Malin <smalin@marvell.com>


Reported-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Kees Cook <keescook@chromium.org>


-Kees

> ---

>  drivers/net/ethernet/qlogic/qede/qede_main.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c

> index d400e9b235bf..a0f20c5337d0 100644

> --- a/drivers/net/ethernet/qlogic/qede/qede_main.c

> +++ b/drivers/net/ethernet/qlogic/qede/qede_main.c

> @@ -1866,6 +1866,7 @@ static void qede_sync_free_irqs(struct qede_dev *edev)

>  	}

>  

>  	edev->int_info.used_cnt = 0;

> +	edev->int_info.msix_cnt = 0;

>  }

>  

>  static int qede_req_msix_irqs(struct qede_dev *edev)

> @@ -2419,7 +2420,6 @@ static int qede_load(struct qede_dev *edev, enum qede_load_mode mode,

>  	goto out;

>  err4:

>  	qede_sync_free_irqs(edev);

> -	memset(&edev->int_info.msix_cnt, 0, sizeof(struct qed_int_info));

>  err3:

>  	qede_napi_disable_remove(edev);

>  err2:

> -- 

> 2.22.0

> 


-- 
Kees Cook
patchwork-bot+netdevbpf@kernel.org Aug. 25, 2021, 10:10 a.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (refs/heads/master):

On Tue, 24 Aug 2021 19:52:49 +0300 you wrote:
> Thanks to Kees Cook who detected the problem of memset that starting

> from not the first member, but sized for the whole struct.

> The better change will be to remove the redundant memset and to clear

> only the msix_cnt member.

> 

> Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>

> Signed-off-by: Ariel Elior <aelior@marvell.com>

> Signed-off-by: Shai Malin <smalin@marvell.com>

> 

> [...]


Here is the summary with links:
  - qede: Fix memset corruption
    https://git.kernel.org/netdev/net/c/e543468869e2

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
index d400e9b235bf..a0f20c5337d0 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
@@ -1866,6 +1866,7 @@  static void qede_sync_free_irqs(struct qede_dev *edev)
 	}
 
 	edev->int_info.used_cnt = 0;
+	edev->int_info.msix_cnt = 0;
 }
 
 static int qede_req_msix_irqs(struct qede_dev *edev)
@@ -2419,7 +2420,6 @@  static int qede_load(struct qede_dev *edev, enum qede_load_mode mode,
 	goto out;
 err4:
 	qede_sync_free_irqs(edev);
-	memset(&edev->int_info.msix_cnt, 0, sizeof(struct qed_int_info));
 err3:
 	qede_napi_disable_remove(edev);
 err2: