lkml.org 
[lkml]   [2018]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 44/61] net/mlx5: E-Switch, Fix out of bound access when setting vport rate
    Date
    From: Eran Ben Elisha <eranbe@mellanox.com>

    [ Upstream commit 11aa5800ed66ed0415b7509f02881c76417d212a ]

    The code that deals with eswitch vport bw guarantee was going beyond the
    eswitch vport array limit, fix that. This was pointed out by the kernel
    address sanitizer (KASAN).

    The error from KASAN log:
    [2018-09-15 15:04:45] BUG: KASAN: slab-out-of-bounds in
    mlx5_eswitch_set_vport_rate+0x8c1/0xae0 [mlx5_core]

    Fixes: c9497c98901c ("net/mlx5: Add support for setting VF min rate")
    Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
    Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
    index de72b66df3e5..1af9894abd95 100644
    --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
    @@ -1922,7 +1922,7 @@ static u32 calculate_vports_min_rate_divider(struct mlx5_eswitch *esw)
    u32 max_guarantee = 0;
    int i;

    - for (i = 0; i <= esw->total_vports; i++) {
    + for (i = 0; i < esw->total_vports; i++) {
    evport = &esw->vports[i];
    if (!evport->enabled || evport->info.min_rate < max_guarantee)
    continue;
    @@ -1942,7 +1942,7 @@ static int normalize_vports_min_rate(struct mlx5_eswitch *esw, u32 divider)
    int err;
    int i;

    - for (i = 0; i <= esw->total_vports; i++) {
    + for (i = 0; i < esw->total_vports; i++) {
    evport = &esw->vports[i];
    if (!evport->enabled)
    continue;
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-10-16 06:25    [W:2.928 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site