Browse Source

Fix leaked handle in create_socket (#1554)

Fixes resource leak problem detected by Coverity Scan.
Oleg Shparber 2 years ago
parent
commit
c2e156e0e0
1 changed files with 4 additions and 1 deletions
  1. 4 1
      httplib.h

+ 4 - 1
httplib.h

@@ -2728,7 +2728,10 @@ socket_t create_socket(const std::string &host, const std::string &ip, int port,
     if (sock == INVALID_SOCKET) { continue; }
     if (sock == INVALID_SOCKET) { continue; }
 
 
 #ifndef _WIN32
 #ifndef _WIN32
-    if (fcntl(sock, F_SETFD, FD_CLOEXEC) == -1) { continue; }
+    if (fcntl(sock, F_SETFD, FD_CLOEXEC) == -1) {
+      close_socket(sock);
+      continue;
+    }
 #endif
 #endif
 
 
     if (tcp_nodelay) {
     if (tcp_nodelay) {