This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Cygwin: accept4: Fix resource leak


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=00e87078302dcfca3b6ad04fd5af5d8f473171a9

commit 00e87078302dcfca3b6ad04fd5af5d8f473171a9
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Fri Mar 2 23:33:05 2018 +0100

    Cygwin: accept4: Fix resource leak
    
    The new implementation neglected to release the file descriptor
    in case of error.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/fhandler_socket_inet.cc  | 2 ++
 winsup/cygwin/fhandler_socket_local.cc | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/winsup/cygwin/fhandler_socket_inet.cc b/winsup/cygwin/fhandler_socket_inet.cc
index a3aeccc..e65acff 100644
--- a/winsup/cygwin/fhandler_socket_inet.cc
+++ b/winsup/cygwin/fhandler_socket_inet.cc
@@ -895,6 +895,8 @@ fhandler_socket_inet::accept4 (struct sockaddr *peer, int *len, int flags)
 		  *len = llen;
 		}
 	    }
+	  else
+	    fd.release ();
 	}
       if (ret == -1)
 	::closesocket (res);
diff --git a/winsup/cygwin/fhandler_socket_local.cc b/winsup/cygwin/fhandler_socket_local.cc
index 844cb9d..11f2c20 100644
--- a/winsup/cygwin/fhandler_socket_local.cc
+++ b/winsup/cygwin/fhandler_socket_local.cc
@@ -1012,6 +1012,8 @@ fhandler_socket_local::accept4 (struct sockaddr *peer, int *len, int flags)
 		  *len = (int) sizeof (un.sun_family);
 		}
 	    }
+	  else
+	    fd.release ();
 	}
       if (ret == -1)
 	::closesocket (res);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]