Re: [PATCH] net: memory leak in nr_rx_frame
From: Bragatheswaran Manickavel <hidden>
Date: 2023-11-11 06:16:34
Also in:
linux-hams, lkml
On 11/11/23 03:01, Kuniyuki Iwashima wrote:
From: Bragatheswaran Manickavel <redacted> Date: Fri, 10 Nov 2023 23:06:32 +0530quoted
The condition (make = nr_make_new(sk)) == NULL suggests that nr_make_new allocates memory and returns a pointer. If this allocation fails (returns NULL), it indicates a potential memory leak.If make is NULL, nothing is allocated and leaked here, and your code will never be executed as "if (make)" is always false.quoted
Added sock_put() for make which can potentially solve this issueSounds like the patch is not tested with kmemleak.
Yes, Had some issue with reproducer. So, haven't tested it
quoted
Reported-by: syzbot+0145ea560de205bc09f0@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=0145ea560de205bc09f0 Signed-off-by: Bragatheswaran Manickavel <redacted> --- net/netrom/af_netrom.c | 2 ++ 1 file changed, 2 insertions(+)diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index 0eed00184adf..7d7cda4ae300 100644 --- a/net/netrom/af_netrom.c +++ b/net/netrom/af_netrom.c@@ -970,6 +970,8 @@ int nr_rx_frame(struct sk_buff *skb, struct net_device *dev) nr_transmit_refusal(skb, 0); if (sk) sock_put(sk); + if (make) + sock_put(make);Also, make could be uninitialised here if the first two condition is true. if (sk == NULL || sk_acceptq_is_full(sk) ||quoted
return 0; } -- 2.34.1
Sorry for the inconvenience, let me check the code and get back properly. Thanks, Bragathe