* killed file descriptor leaks
authorBernd Petrovitsch <bernd@firmix.at>
Sun, 5 Nov 2006 23:03:56 +0000 (23:03 +0000)
committerBernd Petrovitsch <bernd@firmix.at>
Sun, 5 Nov 2006 23:03:56 +0000 (23:03 +0000)
lib/httpinfo/src/olsrd_httpinfo.c
src/bsd/net.c
src/linux/net.c
src/olsr_switch/main.c
src/win32/net.c

index 6be362e..ef0576d 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsrd_httpinfo.c,v 1.59 2006/09/18 18:55:30 kattemat Exp $
+ * $Id: olsrd_httpinfo.c,v 1.60 2006/11/05 23:03:56 bernd67 Exp $
  */
 
 /*
@@ -297,6 +297,7 @@ get_http_socket(int port)
   if (bind(s, (struct sockaddr *) &sin, sizeof(sin)) == -1) 
     {
       olsr_printf(1, "(HTTPINFO) bind failed %s\n", strerror(errno));
+      close(s);
       return -1;
     }
       
@@ -304,6 +305,7 @@ get_http_socket(int port)
   if (listen(s, 1) == -1) 
     {
       olsr_printf(1, "(HTTPINFO) listen failed %s\n", strerror(errno));
+      close(s);
       return -1;
     }
 
index 17a1a6b..81c2426 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: net.c,v 1.27 2006/01/07 08:16:22 kattemat Exp $
+ * $Id: net.c,v 1.28 2006/11/05 23:03:56 bernd67 Exp $
  */
 
 #include "defs.h"
@@ -290,6 +290,7 @@ gethemusocket(struct sockaddr_in *pin)
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) 
     {
       perror("SO_REUSEADDR failed");
+      close(sock);
       return (-1);
     }
   /* connect to PORT on HOST */
@@ -298,6 +299,7 @@ gethemusocket(struct sockaddr_in *pin)
       printf("FAILED\n");
       fprintf(stderr, "Error connecting %d - %s\n", errno, strerror(errno));
       printf("connection refused\n");
+      close(sock);
       return (-1);
     }
 
@@ -332,6 +334,7 @@ getsocket(struct sockaddr *sa, int bufspace, char *int_name)
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) 
     {
       perror("SO_REUSEADDR failed");
+      close(sock);
       return (-1);
     }
 
@@ -339,12 +342,14 @@ getsocket(struct sockaddr *sa, int bufspace, char *int_name)
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)) < 0) 
     {
       perror("SO_REUSEPORT failed");
+      close(sock);
       return (-1);
     }
 
   if (setsockopt(sock, IPPROTO_IP, IP_RECVIF, &on, sizeof(on)) < 0) 
     {
       perror("IP_RECVIF failed");
+      close(sock);
       return (-1);
     }
 #endif /* SPOOF */
@@ -403,6 +408,7 @@ int getsocket6(struct sockaddr_in6 *sin, int bufspace, char *int_name)
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) 
     {
       perror("SO_REUSEADDR failed");
+      close(sock);
       return (-1);
     }
 
index 2d9c1eb..201edc3 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: net.c,v 1.30 2006/01/07 08:16:24 kattemat Exp $
+ * $Id: net.c,v 1.31 2006/11/05 23:03:56 bernd67 Exp $
  */
 
 
@@ -434,6 +434,7 @@ gethemusocket(struct sockaddr_in *pin)
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) 
     {
       perror("SO_REUSEADDR failed");
+      close(sock);
       return (-1);
     }
   /* connect to PORT on HOST */
@@ -442,6 +443,7 @@ gethemusocket(struct sockaddr_in *pin)
       printf("FAILED\n");
       fprintf(stderr, "Error connecting %d - %s\n", errno, strerror(errno));
       printf("connection refused\n");
+      close(sock);
       return (-1);
     }
 
@@ -487,6 +489,7 @@ getsocket(struct sockaddr *sa, int bufspace, char *int_name)
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) 
     {
       perror("SO_REUSEADDR failed");
+      close(sock);
       return (-1);
     }
 
@@ -520,6 +523,7 @@ getsocket(struct sockaddr *sa, int bufspace, char *int_name)
     {
       fprintf(stderr, "Could not bind socket to device... exiting!\n\n");
       syslog(LOG_ERR, "Could not bind socket to device... exiting!\n\n");
+      close(sock);
       return -1;
     }
 
@@ -606,6 +610,7 @@ getsocket6(struct sockaddr_in6 *sin, int bufspace, char *int_name)
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) 
     {
       perror("SO_REUSEADDR failed");
+      close(sock);
       return (-1);
     }
 
@@ -619,6 +624,7 @@ getsocket6(struct sockaddr_in6 *sin, int bufspace, char *int_name)
     {
       fprintf(stderr, "Could not bind socket to device... exiting!\n\n");
       syslog(LOG_ERR, "Could not bind socket to device... exiting!\n\n");
+      close(sock);
       return -1;
     }
 
index a8cb70e..0b17b64 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: main.c,v 1.22 2005/11/08 17:05:23 kattemat Exp $
+ * $Id: main.c,v 1.23 2006/11/05 23:03:56 bernd67 Exp $
  */
 
 /* olsrd host-switch daemon */
@@ -342,6 +342,7 @@ ohs_init_connect_sockets()
   if (bind(srv_socket, (struct sockaddr *) &sin, sizeof(sin)) == -1) 
     {
       printf("bind failed for socket: %s\n", strerror(errno));
+      close(srv_socket);
       exit(0);
     }
   
@@ -349,6 +350,7 @@ ohs_init_connect_sockets()
   if (listen(srv_socket, 5) == -1) 
     {
       printf("listen failed for socket: %s\n", strerror(errno));
+      close(srv_socket);
       exit(0);
     }
   return 1;
index ff8380d..d44e24e 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: net.c,v 1.19 2005/05/30 13:50:27 kattemat Exp $
+ * $Id: net.c,v 1.20 2006/11/05 23:03:56 bernd67 Exp $
  */
 
 #if defined WINCE
@@ -87,6 +87,7 @@ gethemusocket(struct sockaddr_in *pin)
       printf("FAILED\n");
       fprintf(stderr, "Error connecting %d - %s\n", errno, strerror(errno));
       printf("connection refused\n");
+      closesocket(sock);
       return (-1);
     }