Re: [PATCH] net/x25: Fix x25_neigh refcnt leak when reveiving frame
From: David Miller
Date: Thu Apr 23 2020 - 18:49:53 EST
From: Xiyu Yang <xiyuyang19@xxxxxxxxxxxx>
Date: Thu, 23 Apr 2020 13:13:03 +0800
> x25_lapb_receive_frame() invokes x25_get_neigh(), which returns a
> reference of the specified x25_neigh object to "nb" with increased
> refcnt.
>
> When x25_lapb_receive_frame() returns, local variable "nb" becomes
> invalid, so the refcount should be decreased to keep refcount balanced.
>
> The reference counting issue happens in one path of
> x25_lapb_receive_frame(). When pskb_may_pull() returns false, the
> function forgets to decrease the refcnt increased by x25_get_neigh(),
> causing a refcnt leak.
>
> Fix this issue by calling x25_neigh_put() when pskb_may_pull() returns
> false.
>
> Signed-off-by: Xiyu Yang <xiyuyang19@xxxxxxxxxxxx>
> Signed-off-by: Xin Tan <tanxin.ctf@xxxxxxxxx>
Applied and queued up for -stable, thanks.