staging: rtl8723bs: use kfree_sensitive() for key material
Subsystems (2)
PATCH 1/1 staging: rtl8723bs: use kfree_sensitive() for key material
The set_stakey_parm struct contains a 16-byte encryption key. Use kfree_sensitive() instead of kfree() to ensure the key material is zeroed before the memory is freed, preventing potential information leaks.
--- drivers/net/ethernet/faraday/ftmac100.c | 47 +++++------------------- drivers/staging/rtl8723bs/core/rtw_cmd.c | 8 ++-- 2 files changed, 13 insertions(+), 42 deletions(-)
drivers/net/ethernet/faraday/ftmac100.c +9 -38
@@ -49,7 +49,6 @@ struct ftmac100_descs { };struct ftmac100 { -struct resource *res;void __iomem *base;int irq;
@@ -1137,11 +1136,9 @@ static int ftmac100_probe(struct platform_device *pdev)return irq;/* setup net_device */ - netdev =alloc_etherdev (sizeof (*priv)); -if (!netdev) { - err = -ENOMEM ; - goto err_alloc_etherdev; - } + netdev =devm_alloc_etherdev (&pdev->dev,sizeof (*priv)); +if (!netdev) +return -ENOMEM ;SET_NETDEV_DEV (netdev, &pdev->dev); netdev->ethtool_ops = &ftmac100_ethtool_ops;
@@ -1150,7 +1147,7 @@ static int ftmac100_probe(struct platform_device *pdev) err =platform_get_ethdev_address (&pdev->dev, netdev);if (err == -EPROBE_DEFER ) - goto defer_get_mac; +return err;platform_set_drvdata (pdev, netdev);
@@ -1165,20 +1162,9 @@ static int ftmac100_probe(struct platform_device *pdev)netif_napi_add (netdev, &priv->napi, ftmac100_poll);/* map io memory */ - priv->res =request_mem_region (res->start,resource_size (res), -dev_name (&pdev->dev)); -if (!priv->res) { -dev_err (&pdev->dev,"Could not reserve memory region\n" ); - err = -ENOMEM ; - goto err_req_mem; - } - - priv->base =ioremap (res->start,resource_size (res)); -if (!priv->base) { -dev_err (&pdev->dev,"Failed to ioremap ethernet registers\n" ); - err = -EIO ; - goto err_ioremap; - } + priv->base =devm_platform_ioremap_resource (pdev,0 ); +if (IS_ERR (priv->base)) +return PTR_ERR (priv->base); priv->irq = irq;
@@ -1208,32 +1194,17 @@ static int ftmac100_probe(struct platform_device *pdev)return 0 ; err_register_netdev: -iounmap (priv->base); -err_ioremap: -release_resource (priv->res); -err_req_mem:netif_napi_del (&priv->napi); -defer_get_mac: -free_netdev (netdev); -err_alloc_etherdev:return err; }static void ftmac100_remove (struct platform_device *pdev) { -struct net_device *netdev; -struct ftmac100 *priv; - - netdev =platform_get_drvdata (pdev); - priv =netdev_priv (netdev); +struct net_device *netdev =platform_get_drvdata (pdev); +struct ftmac100 *priv =netdev_priv (netdev);unregister_netdev (netdev); - -iounmap (priv->base); -release_resource (priv->res); -netif_napi_del (&priv->napi); -free_netdev (netdev); }static const struct of_device_id ftmac100_of_ids[] = {
drivers/staging/rtl8723bs/core/rtw_cmd.c +4 -4
@@ -899,7 +899,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_if (enqueue) { ph2c =kzalloc_obj (*ph2c);if (!ph2c) { -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
@@ -907,7 +907,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
@@ -918,7 +918,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ res =rtw_enqueue_cmd (pcmdpriv, ph2c); }else {set_stakey_hdl (padapter, (u8 *)psetstakey_para); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); } exit:return res;
@@ -958,7 +958,7 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 enqueu psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
Signature · 1 line
2.55.0
PATCH 1/1 staging: rtl8723bs: use kfree_sensitive() for key material
The set_stakey_parm struct contains a 16-byte encryption key. Use kfree_sensitive() instead of kfree() to ensure the key material is zeroed before the memory is freed, preventing potential information leaks.
--- drivers/staging/rtl8723bs/core/rtw_cmd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/staging/rtl8723bs/core/rtw_cmd.c +4 -4
@@ -899,7 +899,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_if (enqueue) { ph2c =kzalloc_obj (*ph2c);if (!ph2c) { -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
@@ -907,7 +907,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
@@ -918,7 +918,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ res =rtw_enqueue_cmd (pcmdpriv, ph2c); }else {set_stakey_hdl (padapter, (u8 *)psetstakey_para); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); } exit:return res;
@@ -958,7 +958,7 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 enqueu psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
Signature · 1 line
2.55.0
Greg KH
maintainerQuoted 54 lines · Ivy Lopez
The
set_stakey_parmstruct contains a 16-byte encryption key. Usekfree_sensitive()instead ofkfree()to ensure the key material is zeroed before the memory is freed, preventing potential information leaks.Signed-off-by Ivy Lopez <[email protected]>--- drivers/staging/rtl8723bs/core/rtw_cmd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)drivers/staging/rtl8723bs/core/rtw_cmd.c +4
-4@@ -899,7 +899,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_if (enqueue) { ph2c =kzalloc_obj (*ph2c);if (!ph2c) { -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }@@ -907,7 +907,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }@@ -918,7 +918,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ res =rtw_enqueue_cmd (pcmdpriv, ph2c); }else {set_stakey_hdl (padapter, (u8 *)psetstakey_para); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); } exit:return res;@@ -958,7 +958,7 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 enqueu psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }Signature · 1 line
2.55.0
Hi,
This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him a patch that has triggered this response. He used to manually respond to these common problems, but in order to save his sanity (he kept writing the same thing over and over, yet to different people), I was created. Hopefully you will not take offence and will fix the problem in your patch and resubmit it so that it can be accepted into the Linux kernel tree.
You are receiving this message because of the following common error(s) as indicated below:
- This looks like a new version of a previously submitted patch, but you did not list below the --- line any changes from the previous version. Please read the section entitled "The canonical patch format" in the kernel file, Documentation/process/submitting-patches.rst for what needs to be done here to properly describe this.
If you wish to discuss this problem further, or you have questions about how to resolve this issue, please feel free to respond to this email and Greg will reply once he has dug out from the pending patches received from other developers.
thanks,
greg k-h's patch email bot
Quoted 25 lines · Ivy Lopez
The
set_stakey_parmstruct contains a 16-byte encryption key. Usekfree_sensitive()instead ofkfree()to ensure the key material is zeroed before the memory is freed, preventing potential information leaks.Signed-off-by Ivy Lopez <[email protected]>--- drivers/net/ethernet/faraday/ftmac100.c | 47 +++++------------------- drivers/staging/rtl8723bs/core/rtw_cmd.c | 8 ++-- 2 files changed, 13 insertions(+), 42 deletions(-)drivers/net/ethernet/faraday/ftmac100.c +0
-1@@ -49,7 +49,6 @@ struct ftmac100_descs { };struct ftmac100 { -struct resource *res;void __iomem *base;int irq;@@ -1137,11 +1136,9 @@ static int ftmac100_probe(struct platform_device *pdev)return irq;
drivers/net/ethernet/faraday/ftmac100.c static int ftmac100_probe(struct platform_device *pdev) · line 1141
Quoted 10 lines
drivers/net/ethernet/faraday/ftmac100.c +3
-5/* setup net_device */ - netdev =alloc_etherdev (sizeof (*priv)); -if (!netdev) { - err = -ENOMEM ; - goto err_alloc_etherdev; - } + netdev =devm_alloc_etherdev (&pdev->dev,sizeof (*priv)); +if (!netdev) +return -ENOMEM ;
This is unrelated...
regards,
dan carpenter
Thanks for the review. I noticed the same issue. v2 of this patch fixes it and contains only the rtl8723bs change. Apologies for the noise
Ivy Lopez <[email protected]>
PATCH 1/1 staging: rtl8723bs: use kfree_sensitive() for key material
In reply to Ivy LopezThe set_stakey_parm struct contains a 16-byte encryption key. Use kfree_sensitive() instead of kfree() to ensure the key material is zeroed before the memory is freed, preventing potential information leaks.
---
Changes in v2/v3:
- Remove unrelated ftmac100 changes accidentally included in v1
drivers/staging/rtl8723bs/core/rtw_cmd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/staging/rtl8723bs/core/rtw_cmd.c +4 -4
@@ -899,7 +899,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_if (enqueue) { ph2c =kzalloc_obj (*ph2c);if (!ph2c) { -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
@@ -907,7 +907,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
@@ -918,7 +918,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ res =rtw_enqueue_cmd (pcmdpriv, ph2c); }else {set_stakey_hdl (padapter, (u8 *)psetstakey_para); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); } exit:return res;
@@ -958,7 +958,7 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 enqueu psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
Signature · 1 line
2.55.0
Greg KH
maintainerQuoted 9 lines · Ivy Lopez
The
set_stakey_parmstruct contains a 16-byte encryption key. Usekfree_sensitive()instead ofkfree()to ensure the key material is zeroed before the memory is freed, preventing potential information leaks.Signed-off-by Ivy Lopez <[email protected]>---
Changes in v2/v3:
- Remove unrelated ftmac100 changes accidentally included in v1
Did you forgot to add the version to the subject line too?
Also, you have 72 columns for the changelog, please use it.
thanks,
greg k-h
Quoted 9 lines · Ivy Lopez
The
set_stakey_parmstruct contains a 16-byte encryption key. Usekfree_sensitive()instead ofkfree()to ensure the key material is zeroed before the memory is freed, preventing potential information leaks.Signed-off-by Ivy Lopez <[email protected]>---
Changes in v2/v3:
- Remove unrelated ftmac100 changes accidentally included in v1
Needs a Fixes tag.
regards,
dan carpenter
PATCH 1/1 staging: rtl8723bs: use kfree_sensitive() for key material
In reply to Ivy LopezThe set_stakey_parm struct contains a 16-byte encryption key. Use kfree_sensitive() instead of kfree() to ensure the key material is zeroed before the memory is freed, preventing potential information leaks.
---
Changes in v4:
- Add Fixes: tag
- Previous versions had unrelated ftmac100 changes (now removed)
drivers/staging/rtl8723bs/core/rtw_cmd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/staging/rtl8723bs/core/rtw_cmd.c +4 -4
@@ -899,7 +899,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_if (enqueue) { ph2c =kzalloc_obj (*ph2c);if (!ph2c) { -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
@@ -907,7 +907,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
@@ -918,7 +918,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_ res =rtw_enqueue_cmd (pcmdpriv, ph2c); }else {set_stakey_hdl (padapter, (u8 *)psetstakey_para); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); } exit:return res;
@@ -958,7 +958,7 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 enqueu psetstakey_rsp =kzalloc_obj (*psetstakey_rsp);if (!psetstakey_rsp) {kfree (ph2c); -kfree (psetstakey_para); +kfree_sensitive (psetstakey_para); res = _FAIL; goto exit; }
Signature · 1 line
2.55.0