* tcp_sockets.c: when an outgoing socket connection fails, close the socket
authorArt Cancro <ajc@citadel.org>
Sat, 26 Apr 2003 21:57:53 +0000 (21:57 +0000)
committerArt Cancro <ajc@citadel.org>
Sat, 26 Apr 2003 21:57:53 +0000 (21:57 +0000)
  before returning an error code to avoid a file descriptor leak

webcit/ChangeLog
webcit/tcp_sockets.c

index 8c32a36c63911d449a59d137894a3b147ae1792c..1abd28af0ac7f37728d75d44b95afb5c2242a15d 100644 (file)
@@ -1,4 +1,8 @@
 $Log$
+Revision 410.13  2003/04/26 21:57:53  ajc
+* tcp_sockets.c: when an outgoing socket connection fails, close the socket
+  before returning an error code to avoid a file descriptor leak
+
 Revision 410.12  2003/04/19 21:42:36  ajc
 * Repaired all my b0rken COLOR tags
 * Replaced most FONT tags with SPAN tags
@@ -1334,3 +1338,4 @@ Sun Dec  6 19:50:55 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
 
 1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
        * webserver.c: warning fix
+
index 37eaa29879ffbcace514b9f7ac1db48b398d4ce8..31a1c0425bd4115e6a26ec75a7b0e23dd7393791 100644 (file)
@@ -66,6 +66,7 @@ int uds_connectsock(char *sockpath)
        if (connect(s, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
                lprintf(1, "Can't connect: %s\n",
                        strerror(errno));
+               close(s);
                return(-1);
        }
 
@@ -119,6 +120,7 @@ int tcp_connectsock(char *host, char *service)
        if (connect(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
                lprintf(1, "Can't connect to %s.%s: %s\n",
                        host, service, strerror(errno));
+               close(s);
                return (-1);
        }
        alarm(0);