coverity fixes, revert to 11639 if broken
authorNathan S. Evans <evans@in.tum.de>
Wed, 9 Jun 2010 08:56:16 +0000 (08:56 +0000)
committerNathan S. Evans <evans@in.tum.de>
Wed, 9 Jun 2010 08:56:16 +0000 (08:56 +0000)
src/util/service.c

index 9ab99de3e6053c49dbd5a8df30737a16cf058cbb..ee1a3151fff29c92bfd5fc68610cbf65517e5f14 100644 (file)
@@ -790,6 +790,7 @@ GNUNET_SERVICE_get_server_addresses (const char *serviceName,
 
   *addrs = NULL;
   *addr_lens = NULL;
+  desc = NULL;
   if (GNUNET_CONFIGURATION_have_value (cfg,
                                        serviceName, "DISABLEV6"))
     {
@@ -823,6 +824,7 @@ GNUNET_SERVICE_get_server_addresses (const char *serviceName,
       else
         {
           GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (desc));
+          desc = NULL;
         }
     }
 
@@ -879,7 +881,7 @@ GNUNET_SERVICE_get_server_addresses (const char *serviceName,
             }
           GNUNET_log (GNUNET_ERROR_TYPE_INFO,
                       _
-                      ("Disabling UNIX domainn socket support for service `%s', failed to create UNIX domain socket: %s\n"),
+                      ("Disabling UNIX domain socket support for service `%s', failed to create UNIX domain socket: %s\n"),
                       serviceName, STRERROR (errno));
          GNUNET_free (unixpath);
           unixpath = NULL;
@@ -897,6 +899,9 @@ GNUNET_SERVICE_get_server_addresses (const char *serviceName,
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                  _("Have neither PORT nor UNIXPATH for service `%s', but one is required\n"),
                  serviceName);
+      if (desc != NULL)
+        GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (desc));
+      GNUNET_free_non_null(hostname);
       return GNUNET_SYSERR;
     }
        
@@ -1043,6 +1048,8 @@ GNUNET_SERVICE_get_server_addresses (const char *serviceName,
   GNUNET_free_non_null (unixpath);
   *addrs = saddrs;
   *addr_lens = saddrlens;
+  if (desc != NULL)
+    GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (desc));
   return resi;
 }