Thread (5 messages) 5 messages, 4 authors, 2023-11-13

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 +0530
quoted
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 issue
Sounds 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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help