diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2018-03-02 23:33:05 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2018-03-02 23:33:05 +0100 |
commit | 00e87078302dcfca3b6ad04fd5af5d8f473171a9 (patch) | |
tree | 3c4455353c593855205b692ed48996bc969f9703 | |
parent | 984c8beeffa912833409400fffdbfac16dd7a731 (diff) | |
download | cygnal-00e87078302dcfca3b6ad04fd5af5d8f473171a9.tar.gz cygnal-00e87078302dcfca3b6ad04fd5af5d8f473171a9.tar.bz2 cygnal-00e87078302dcfca3b6ad04fd5af5d8f473171a9.zip |
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>
-rw-r--r-- | winsup/cygwin/fhandler_socket_inet.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_socket_local.cc | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler_socket_inet.cc b/winsup/cygwin/fhandler_socket_inet.cc index a3aeccc82..e65acffdf 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 844cb9d11..11f2c209e 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); |