Re: [PATCH net 2/2] devlink: sb: do not dereference a missing shared buffer

From: Simon Horman

Date: Mon Nov 02 2026 - 07:15:48 EST


On Fri, Oct 30, 2026 at 11:33:32AM +0800, Linkui Xiao wrote:
> From: Linkui Xiao <xiaolinkui@xxxxxxxxxx>
>
> devl_sb_unregister() looks the shared buffer up by index and only warns
> when it is not on the list. list_del() and kfree() are then called on the
> NULL result, so unregistering an index that was never registered, or
> unregistering the same index twice, turns the warning into a NULL pointer
> dereference. list is the first member of struct devlink_sb, so list_del()
> reads the next and prev pointers from address 0 before storing to them.
>
> The register side already fails gracefully: devl_sb_register() returns
> -EEXIST when the index is taken. Make the unregister side symmetric and
> return after the warning.
>
> Fixes: bf7974710a40 ("devlink: add shared buffer configuration")
> Signed-off-by: Linkui Xiao <xiaolinkui@xxxxxxxxxx>

Reviewed-by: Simon Horman <horms@xxxxxxxxxx>