From b8cc5ef757afdd5c0d0adcd948a213b11a5fbc80 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 27 Nov 2018 07:40:55 -0600 Subject: [PATCH] net/socket/net_clone.c: On a failure to start the TCP monitor, the clone socket is closed but is not properly freed, leaving it attached to a TCP connection structure with the wrong reference count. --- net/socket/net_clone.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/socket/net_clone.c b/net/socket/net_clone.c index 89ee28a0b47..1fec641cdb3 100644 --- a/net/socket/net_clone.c +++ b/net/socket/net_clone.c @@ -141,6 +141,12 @@ int net_clone(FAR struct socket *psock1, FAR struct socket *psock2) */ (void)inet_close(psock2); + + /* Then release our reference on the socket structure containing + * the connection. + */ + + sock_release(psock2); } } #endif