net: dsa: sja1105: Use struct_size() in kzalloc()
PATCH 1/1 net: dsa: sja1105: Use struct_size() in kzalloc()
Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes.
This code was detected with the help of Coccinelle and, audited and fixed manually.
Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83
--- drivers/net/dsa/sja1105/sja1105_tas.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/dsa/sja1105/sja1105_tas.c +1 -2
@@ -475,8 +475,7 @@ bool sja1105_gating_check_conflicts(struct sja1105_private *priv, int port,if (list_empty (&gating_cfg->entries))return false; - dummy =kzalloc (sizeof (struct tc_taprio_sched_entry ) * num_entries + -sizeof (struct tc_taprio_qopt_offload ),GFP_KERNEL ); + dummy =kzalloc (struct_size (dummy, entries, num_entries),GFP_KERNEL );if (!dummy) {NL_SET_ERR_MSG_MOD (extack,"Failed to allocate memory" );return true;
Signature · 1 line
2.27.0
Hi Gustavo,
Quoted 18 lines · Gustavo A. R. Silva
Make use of the
struct_size()helper instead of an open-coded version in order to avoid any potential type mistakes.This code was detected with the help of Coccinelle and, audited and fixed manually.
Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83
Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/net/dsa/sja1105/sja1105_tas.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)drivers/net/dsa/sja1105/sja1105_tas.c +0
-0
drivers/net/dsa/sja1105/sja1105_tas.c bool sja1105_gating_check_conflicts(struct sja1105_private *priv, int port, · line 478
Quoted 6 lines
drivers/net/dsa/sja1105/sja1105_tas.c +1
-2@@ -475,8 +475,7 @@ bool sja1105_gating_check_conflicts(struct sja1105_private *priv, int port,if (list_empty (&gating_cfg->entries))return false; - dummy =kzalloc (sizeof (struct tc_taprio_sched_entry ) * num_entries + -sizeof (struct tc_taprio_qopt_offload ),GFP_KERNEL ); + dummy =kzalloc (struct_size (dummy, entries, num_entries),GFP_KERNEL );
Before, I could read this line and I knew what it did. Now, I have to look it up.
But if it's in the interest of kernel coding style, what can I say.
Quoted 6 lines
drivers/net/dsa/sja1105/sja1105_tas.c +0
-1if (!dummy) {NL_SET_ERR_MSG_MOD (extack,"Failed to allocate memory" );return true; --2.27.0
From: "Gustavo A. R. Silva" <[email protected]>
Date: Fri, 19 Jun 2020 13:10:07 -0500
Quoted 8 lines
Make use of the
struct_size()helper instead of an open-coded version in order to avoid any potential type mistakes.This code was detected with the help of Coccinelle and, audited and fixed manually.
Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83
Signed-off-by Gustavo A. R. Silva <[email protected]>
Applied.