Message ID | 20221119072832.7896-1-yuehaibing@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Commit | cd0f6421162201e4b22ce757a1966729323185eb |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] tipc: check skb_linearize() return value in tipc_disc_rcv() | expand |
On 11/19/22 02:28, YueHaibing wrote: > If skb_linearize() fails in tipc_disc_rcv(), we need to free the skb instead of > handle it. > > Fixes: 25b0b9c4e835 ("tipc: handle collisions of 32-bit node address hash values") > Signed-off-by: YueHaibing <yuehaibing@huawei.com> > --- > net/tipc/discover.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/net/tipc/discover.c b/net/tipc/discover.c > index e8630707901e..e8dcdf267c0c 100644 > --- a/net/tipc/discover.c > +++ b/net/tipc/discover.c > @@ -211,7 +211,10 @@ void tipc_disc_rcv(struct net *net, struct sk_buff *skb, > u32 self; > int err; > > - skb_linearize(skb); > + if (skb_linearize(skb)) { > + kfree_skb(skb); > + return; > + } > hdr = buf_msg(skb); > > if (caps & TIPC_NODE_ID128) Acked-by: Jon Maloy <jmaloy@redhat.com>
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Sat, 19 Nov 2022 15:28:32 +0800 you wrote: > If skb_linearize() fails in tipc_disc_rcv(), we need to free the skb instead of > handle it. > > Fixes: 25b0b9c4e835 ("tipc: handle collisions of 32-bit node address hash values") > Signed-off-by: YueHaibing <yuehaibing@huawei.com> > --- > net/tipc/discover.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Here is the summary with links: - [net] tipc: check skb_linearize() return value in tipc_disc_rcv() https://git.kernel.org/netdev/net/c/cd0f64211622 You are awesome, thank you!
diff --git a/net/tipc/discover.c b/net/tipc/discover.c index e8630707901e..e8dcdf267c0c 100644 --- a/net/tipc/discover.c +++ b/net/tipc/discover.c @@ -211,7 +211,10 @@ void tipc_disc_rcv(struct net *net, struct sk_buff *skb, u32 self; int err; - skb_linearize(skb); + if (skb_linearize(skb)) { + kfree_skb(skb); + return; + } hdr = buf_msg(skb); if (caps & TIPC_NODE_ID128)
If skb_linearize() fails in tipc_disc_rcv(), we need to free the skb instead of handle it. Fixes: 25b0b9c4e835 ("tipc: handle collisions of 32-bit node address hash values") Signed-off-by: YueHaibing <yuehaibing@huawei.com> --- net/tipc/discover.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)