[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20180213.122344.1587020712050519074.davem@davemloft.net>
Date: Tue, 13 Feb 2018 12:23:44 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: jiri@...nulli.us
Cc: netdev@...r.kernel.org, idosch@...lanox.com, mlxsw@...lanox.com
Subject: Re: [patch net] mlxsw: spectrum_router: Fix error path in
mlxsw_sp_vr_create
From: Jiri Pirko <jiri@...nulli.us>
Date: Tue, 13 Feb 2018 11:22:42 +0100
> From: Jiri Pirko <jiri@...lanox.com>
>
> Since mlxsw_sp_fib_create() and mlxsw_sp_mr_table_create()
> use ERR_PTR macro to propagate int err through return of a pointer,
> the return value is not NULL in case of failure. So if one
> of the calls fails, one of vr->fib4, vr->fib6 or vr->mr4_table
> is not NULL and mlxsw_sp_vr_is_used wrongly assumes
> that vr is in use which leads to crash like following one:
>
> [ 1293.949291] BUG: unable to handle kernel NULL pointer dereference at 00000000000006c9
> [ 1293.952729] IP: mlxsw_sp_mr_table_flush+0x15/0x70 [mlxsw_spectrum]
>
> Fix this by using local variables to hold the pointers and set vr->*
> only in case everything went fine.
>
> Fixes: 76610ebbde18 ("mlxsw: spectrum_router: Refactor virtual router handling")
> Fixes: a3d9bc506d64 ("mlxsw: spectrum_router: Extend virtual routers with IPv6 support")
> Fixes: d42b0965b1d4 ("mlxsw: spectrum_router: Add multicast routes notification handling functionality")
> Signed-off-by: Jiri Pirko <jiri@...lanox.com>
> Reviewed-by: Ido Schimmel <idosch@...lanox.com>
> Signed-off-by: Jiri Pirko <jiri@...lanox.com>
Applied and queued up for -stable.
Powered by blists - more mailing lists