diff mbox series

[net] rxrpc: Fix a missing rxrpc_put_peer() in the error_report handler

Message ID 153963944115.2618.17691876338723925930.stgit@warthog.procyon.org.uk
State Accepted, archived
Delegated to: David Miller
Headers show
Series [net] rxrpc: Fix a missing rxrpc_put_peer() in the error_report handler | expand

Commit Message

David Howells Oct. 15, 2018, 9:37 p.m. UTC
Fix a missing call to rxrpc_put_peer() on the main path through the
rxrpc_error_report() function.  This manifests itself as a ref leak
whenever an ICMP packet or other error comes in.

In commit f334430316e7, the hand-off of the ref to a work item was removed
and was not replaced with a put.

Fixes: f334430316e7 ("rxrpc: Fix error distribution")
Signed-off-by: David Howells <dhowells@redhat.com>
---

 net/rxrpc/peer_event.c |    1 +
 1 file changed, 1 insertion(+)

Comments

David Miller Oct. 16, 2018, 6:14 a.m. UTC | #1
From: David Howells <dhowells@redhat.com>
Date: Mon, 15 Oct 2018 22:37:21 +0100

> Fix a missing call to rxrpc_put_peer() on the main path through the
> rxrpc_error_report() function.  This manifests itself as a ref leak
> whenever an ICMP packet or other error comes in.
> 
> In commit f334430316e7, the hand-off of the ref to a work item was removed
> and was not replaced with a put.
> 
> Fixes: f334430316e7 ("rxrpc: Fix error distribution")
> Signed-off-by: David Howells <dhowells@redhat.com>

Applied.
diff mbox series

Patch

diff --git a/net/rxrpc/peer_event.c b/net/rxrpc/peer_event.c
index 05b51bdbdd41..bd2fa3b7caa7 100644
--- a/net/rxrpc/peer_event.c
+++ b/net/rxrpc/peer_event.c
@@ -195,6 +195,7 @@  void rxrpc_error_report(struct sock *sk)
 	rxrpc_store_error(peer, serr);
 	rcu_read_unlock();
 	rxrpc_free_skb(skb, rxrpc_skb_rx_freed);
+	rxrpc_put_peer(peer);
 
 	_leave("");
 }