Message ID | 20240710123949.9265-1-amishin@t-argos.ru (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v4] ice: Adjust over allocation of memory in ice_sched_add_root_node() and ice_sched_add_node() | expand |
On Wed, Jul 10, 2024 at 03:39:49PM +0300, Aleksandr Mishin wrote: > In ice_sched_add_root_node() and ice_sched_add_node() there are calls to > devm_kcalloc() in order to allocate memory for array of pointers to > 'ice_sched_node' structure. But incorrect types are used as sizeof() > arguments in these calls (structures instead of pointers) which leads to > over allocation of memory. > > Adjust over allocation of memory by correcting types in devm_kcalloc() > sizeof() arguments. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru> > --- > v4: > - Remove Suggested-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > - Add Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > (https://lore.kernel.org/all/6d8ac0cf-b954-4c12-8b5b-e172c850e529@intel.com/) > v3: https://lore.kernel.org/all/20240708182736.8514-1-amishin@t-argos.ru/ > - Update comment and use the correct entities as suggested by Przemek > v2: https://lore.kernel.org/all/20240706140518.9214-1-amishin@t-argos.ru/ > - Update comment, remove 'Fixes' tag and change the tree from 'net' to > 'net-next' as suggested by Simon > (https://lore.kernel.org/all/20240706095258.GB1481495@kernel.org/) > v1: https://lore.kernel.org/all/20240705163620.12429-1-amishin@t-argos.ru/ Thanks for your persistence, this version looks good to me. Reviewed-by: Simon Horman <horms@kernel.org>
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Aleksandr Mishin > Sent: Wednesday, July 10, 2024 6:10 PM > To: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> > Cc: lvc-project@linuxtesting.org; intel-wired-lan@lists.osuosl.org; linux-kernel@vger.kernel.org; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Eric Dumazet <edumazet@google.com>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Aleksandr Mishin <amishin@t-argos.ru>; netdev@vger.kernel.org; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>; David S. Miller <davem@davemloft.net> > Subject: [Intel-wired-lan] [PATCH net-next v4] ice: Adjust over allocation of memory in ice_sched_add_root_node() and ice_sched_add_node() > > In ice_sched_add_root_node() and ice_sched_add_node() there are calls to > devm_kcalloc() in order to allocate memory for array of pointers to 'ice_sched_node' structure. But incorrect types are used as sizeof() arguments in these calls (structures instead of pointers) which leads to over allocation of memory. > > Adjust over allocation of memory by correcting types in devm_kcalloc() > sizeof() arguments. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru> > --- > v4: > - Remove Suggested-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > - Add Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > (https://lore.kernel.org/all/6d8ac0cf-b954-4c12-8b5b-e172c850e529@intel.com/) > v3: https://lore.kernel.org/all/20240708182736.8514-1-amishin@t-argos.ru/ > - Update comment and use the correct entities as suggested by Przemek > v2: https://lore.kernel.org/all/20240706140518.9214-1-amishin@t-argos.ru/ > - Update comment, remove 'Fixes' tag and change the tree from 'net' to > 'net-next' as suggested by Simon > (https://lore.kernel.org/all/20240706095258.GB1481495@kernel.org/) > v1: https://lore.kernel.org/all/20240705163620.12429-1-amishin@t-argos.ru/ > > drivers/net/ethernet/intel/ice/ice_sched.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
diff --git a/drivers/net/ethernet/intel/ice/ice_sched.c b/drivers/net/ethernet/intel/ice/ice_sched.c index ecf8f5d60292..6ca13c5dcb14 100644 --- a/drivers/net/ethernet/intel/ice/ice_sched.c +++ b/drivers/net/ethernet/intel/ice/ice_sched.c @@ -28,9 +28,8 @@ ice_sched_add_root_node(struct ice_port_info *pi, if (!root) return -ENOMEM; - /* coverity[suspicious_sizeof] */ root->children = devm_kcalloc(ice_hw_to_dev(hw), hw->max_children[0], - sizeof(*root), GFP_KERNEL); + sizeof(*root->children), GFP_KERNEL); if (!root->children) { devm_kfree(ice_hw_to_dev(hw), root); return -ENOMEM; @@ -186,10 +185,9 @@ ice_sched_add_node(struct ice_port_info *pi, u8 layer, if (!node) return -ENOMEM; if (hw->max_children[layer]) { - /* coverity[suspicious_sizeof] */ node->children = devm_kcalloc(ice_hw_to_dev(hw), hw->max_children[layer], - sizeof(*node), GFP_KERNEL); + sizeof(*node->children), GFP_KERNEL); if (!node->children) { devm_kfree(ice_hw_to_dev(hw), node); return -ENOMEM;