]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/daemon.c
Fix lint in previous commit
[openldap] / servers / slapd / daemon.c
index c13b4ae87602378bf9a2577db8cb873b35d0d10c..55c8347967e36ab6f3834f64b28a16fe5d9b95f3 100644 (file)
@@ -1,6 +1,6 @@
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
@@ -114,8 +114,8 @@ void slapd_slp_init( const char* urls ) {
                                slapd_srvurls[i] = (char *) realloc( slapd_srvurls[i],
                                        strlen( host ) +
                                        sizeof( LDAP_SRVTYPE_PREFIX ) );
-                               strcpy( slapd_srvurls[i], LDAP_SRVTYPE_PREFIX );
-                               strcat( slapd_srvurls[i], host );
+                               strcpy( slap_strcopy(slapd_srvurls[i],
+                                       LDAP_SRVTYPE_PREFIX ), host );
 
                                ch_free( host );
                        }
@@ -126,8 +126,8 @@ void slapd_slp_init( const char* urls ) {
                                slapd_srvurls[i] = (char *) realloc( slapd_srvurls[i],
                                        strlen( host ) +
                                        sizeof( LDAPS_SRVTYPE_PREFIX ) );
-                               strcpy( slapd_srvurls[i], LDAPS_SRVTYPE_PREFIX );
-                               strcat( slapd_srvurls[i], host );
+                               strcpy( slap_strcopy(slapd_srvurls[i],
+                                       LDAPS_SRVTYPE_PREFIX ), host );
 
                                ch_free( host );
                        }
@@ -385,7 +385,7 @@ static int slap_get_listener_addresses(
                for (n=2; (sai = sai->ai_next) != NULL; n++) {
                        /* EMPTY */ ;
                }
-               *sal = ch_malloc(n * sizeof(void *));
+               *sal = ch_calloc(n, sizeof(void *));
                if (*sal == NULL) {
                        return -1;
                }
@@ -733,11 +733,10 @@ static Listener * slap_open_listener(
                inet_ntop( AF_INET, &((struct sockaddr_in *)*sal)->sin_addr,
                           addr, sizeof(addr) );
                s = addr;
-               port = ((struct sockaddr_in *)*sal) ->sin_port;
 #else
-               s = inet_ntoa( l.sl_addr.sin_addr );
-               port = l.sl_addr.sin_port;
+               s = inet_ntoa( ((struct sockaddr_in *) *sal)->sin_addr );
 #endif
+               port = ((struct sockaddr_in *)*sal) ->sin_port;
                l.sl_name = ch_malloc( sizeof("IP=255.255.255.255:65535") );
                sprintf( l.sl_name, "IP=%s:%d",
                         s != NULL ? s : "unknown" , port );
@@ -1675,9 +1674,15 @@ slapd_daemon_task(
                        }
 #endif /* LDAP_PF_LOCAL */
                        slapd_close( slap_listeners[l]->sl_sd );
-                       break;
                }
+               if ( slap_listeners[l]->sl_url )
+                       free ( slap_listeners[l]->sl_url );
+               if ( slap_listeners[l]->sl_name )
+                       free ( slap_listeners[l]->sl_name );
+               free ( slap_listeners[l] );
        }
+       free ( slap_listeners );
+       slap_listeners = NULL;
 
 #ifdef NEW_LOGGING
        LDAP_LOG(( "connection", LDAP_LEVEL_CRIT,