Просмотр исходного кода

* Ported [2430] to 1.2.9 (fixes #167)

svn: 2587
Bryan Drewery 20 лет назад
Родитель
Сommit
4cec6e180c
2 измененных файлов с 9 добавлено и 2 удалено
  1. 1 0
      doc/UPDATES
  2. 8 2
      src/socket.c

+ 1 - 0
doc/UPDATES

@@ -19,6 +19,7 @@ Lines prefixed with '-' were disabled before release and are not finished, or ar
 * Fixed tempdir checking to attempt to 'mkdir ~/.ssh/' for '~/.ssh/...' tempdir.
 * Fixed bot link getting colors. (fixes #161)
 * Fixed +r bots resolving users by resolved ip before host.
+* Fixed 2 socket leaks in the dns/socket code. (#167)
 
 1.2.8
 * Fixed [bot]* cmds depending on case of botnicks.

+ 8 - 2
src/socket.c

@@ -178,7 +178,10 @@ int socket_create(const char *dest_ip, int dest_port, const char *src_ip, int sr
                 int yes = 1;
 
                 setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int));
-                if (bind(sock, &src_name.u.addr, src_name.len) != 0) return(-3);
+                if (bind(sock, &src_name.u.addr, src_name.len) != 0) {
+			killsock(sock);
+			return(-3);
+		}
                 if (flags & SOCKET_SERVER) listen(sock, 50);
         }
 
@@ -193,7 +196,10 @@ int socket_create(const char *dest_ip, int dest_port, const char *src_ip, int sr
           }
 
           if (connect(sock, &dest_name.u.addr, dest_name.len) != 0) {
-            if (errno != EINPROGRESS) return(-4);
+		if (errno != EINPROGRESS) {
+			killsock(sock);
+			return(-4);
+		}
           }
         }