Browse Source

Ticket 49002 - Remove memset on allocation

Bug Description:  Memset is slow, and has cause us some issues. c99 supports
allocing 0 structs with {0}, and we can also use calloc when needed. Calloc is
signifigantly faster that malloc + memset.

Fix Description:  Remove memset where possible. We can't remove it universally
due to some struct reuse, and some libraries needing it, but this reduction
cleans the code greatly, and should give us a perf improvement.

https://fedorahosted.org/389/ticket/49002

Author: wibrown

Review by: mreynolds (Thanks!)
William Brown 9 years ago
parent
commit
b1f434e3f5
40 changed files with 116 additions and 220 deletions
  1. 2 5
      ldap/servers/plugins/acl/aclparse.c
  2. 2 4
      ldap/servers/plugins/memberof/memberof.c
  3. 2 2
      ldap/servers/plugins/referint/referint.c
  4. 1 2
      ldap/servers/plugins/retrocl/retrocl_cn.c
  5. 3 4
      ldap/servers/plugins/rever/pbe.c
  6. 2 4
      ldap/servers/plugins/rootdn_access/rootdn_access.c
  7. 0 1
      ldap/servers/slapd/add.c
  8. 5 10
      ldap/servers/slapd/attrsyntax.c
  9. 3 4
      ldap/servers/slapd/back-ldbm/import-threads.c
  10. 1 2
      ldap/servers/slapd/back-ldbm/ldbm_config.c
  11. 4 5
      ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
  12. 6 9
      ldap/servers/slapd/connection.c
  13. 9 12
      ldap/servers/slapd/daemon.c
  14. 6 9
      ldap/servers/slapd/defbackend.c
  15. 1 3
      ldap/servers/slapd/delete.c
  16. 6 8
      ldap/servers/slapd/entry.c
  17. 1 3
      ldap/servers/slapd/fedse.c
  18. 2 3
      ldap/servers/slapd/filter.c
  19. 3 5
      ldap/servers/slapd/generation.c
  20. 1 3
      ldap/servers/slapd/getsocketpeer.c
  21. 3 9
      ldap/servers/slapd/ldaputil.c
  22. 1 2
      ldap/servers/slapd/log.c
  23. 9 18
      ldap/servers/slapd/main.c
  24. 4 8
      ldap/servers/slapd/mapping_tree.c
  25. 1 3
      ldap/servers/slapd/modify.c
  26. 1 3
      ldap/servers/slapd/modrdn.c
  27. 2 1
      ldap/servers/slapd/operation.c
  28. 1 1
      ldap/servers/slapd/pblock.c
  29. 7 12
      ldap/servers/slapd/plugin.c
  30. 1 3
      ldap/servers/slapd/plugin_internal_op.c
  31. 1 2
      ldap/servers/slapd/plugin_mr.c
  32. 2 4
      ldap/servers/slapd/schema.c
  33. 1 2
      ldap/servers/slapd/ssl.c
  34. 5 12
      ldap/servers/slapd/task.c
  35. 1 2
      ldap/servers/slapd/time.c
  36. 1 10
      ldap/servers/slapd/uniqueid.c
  37. 3 8
      ldap/servers/slapd/uniqueidgen.c
  38. 5 6
      ldap/servers/slapd/util.c
  39. 3 6
      ldap/servers/slapd/uuid.c
  40. 4 10
      lib/ldaputil/certmap.c

+ 2 - 5
ldap/servers/plugins/acl/aclparse.c

@@ -1562,9 +1562,7 @@ __aclp__init_targetattr (aci_t *aci, char *attr_val, char **errbuf)
 		 *
 		 * The attribute goes in the attrTarget list.
 		 */
-		attr = (Targetattr *) slapi_ch_malloc (sizeof (Targetattr));
-		memset (attr, 0, sizeof(Targetattr));
-                                
+		attr = (Targetattr *) slapi_ch_calloc (1, sizeof (Targetattr));
 		/* strip double quotes */
 		lenstr = strlen(str);
 		if (*str == '"' && *(str + lenstr - 1) == '"') {
@@ -2150,8 +2148,7 @@ static int process_filter_list( Targetattrfilter ***input_attrFilterArray,
 		 *
 		*/
 
-		attrfilter = (Targetattrfilter *) slapi_ch_malloc (sizeof (Targetattrfilter));
-		memset (attrfilter, 0, sizeof(Targetattrfilter));
+		attrfilter = (Targetattrfilter *) slapi_ch_calloc (1, sizeof (Targetattrfilter));
 
 		if (strstr( str,":") != NULL) {
 			if ( __acl_init_targetattrfilter( attrfilter, str ) != 0 ) {

+ 2 - 4
ldap/servers/plugins/memberof/memberof.c

@@ -2267,12 +2267,10 @@ int memberof_test_membership_callback(Slapi_Entry *e, void *callback_data)
 
 			candidate_array =
 				(Slapi_Value**)
-				slapi_ch_malloc(sizeof(Slapi_Value*)*total);
-			memset(candidate_array, 0, sizeof(Slapi_Value*)*total);
+				slapi_ch_calloc(1, sizeof(Slapi_Value*)*total);
 			member_array =
 				(Slapi_Value**)
-				slapi_ch_malloc(sizeof(Slapi_Value*)*total);
-			memset(member_array, 0, sizeof(Slapi_Value*)*total);
+				slapi_ch_calloc(1, sizeof(Slapi_Value*)*total);
 
 			hint = slapi_attr_first_value(attr, &val);
 

+ 2 - 2
ldap/servers/plugins/referint/referint.c

@@ -1500,7 +1500,8 @@ referint_thread_func(void *arg)
 
 int my_fgetc(PRFileDesc *stream)
 {
-    static char buf[READ_BUFSIZE]  =  "\0";
+    /* This is equivalent to memset of 0, but statically defined. */
+    static char buf[READ_BUFSIZE]  =  {0};
     static int  position           =  READ_BUFSIZE;
     int         retval;
     int         err;
@@ -1508,7 +1509,6 @@ int my_fgetc(PRFileDesc *stream)
     /* check if we need to load the buffer */
     if( READ_BUFSIZE == position )
     {
-        memset(buf, '\0', READ_BUFSIZE);
         if( ( err = PR_Read(stream, buf, READ_BUFSIZE) ) >= 0)
         {
             /* it read some data */;

+ 1 - 2
ldap/servers/plugins/retrocl/retrocl_cn.c

@@ -171,7 +171,7 @@ int retrocl_get_changenumbers(void)
  */
 time_t retrocl_getchangetime( int type, int *err )
 {
-    cnumRet cr;
+    cnumRet cr = {0};
     time_t ret;
 
     if ( type != SLAPI_SEQ_FIRST && type != SLAPI_SEQ_LAST ) {
@@ -180,7 +180,6 @@ time_t retrocl_getchangetime( int type, int *err )
 	}
 	return NO_TIME;
     }
-    memset( &cr, '\0', sizeof( cnumRet ));
     slapi_seq_callback( RETROCL_CHANGELOG_DN, type, 
 			(char *)attr_changenumber, /* cast away const */
 			NULL,

+ 3 - 4
ldap/servers/plugins/rever/pbe.c

@@ -184,12 +184,13 @@ genKey(struct pk11ContextStore **out, char *path, int mech, PRArenaPool *arena,
     SECItem *pwitem = NULL;
     SECItem *result = NULL;
     SECItem *salt = NULL;
-    SECItem der_algid;
+    SECItem der_algid = {0};
     SECAlgorithmID *algid = NULL;
     SECOidTag algoid;
     CK_MECHANISM pbeMech;
     CK_MECHANISM cryptoMech;
-    SECAlgorithmID my_algid;
+    /* Have to use long form init due to internal structs */
+    SECAlgorithmID my_algid = {{0}, {0}};
     char *configdir = NULL;
     char *der_ascii = NULL;
     char *iv = NULL;
@@ -262,7 +263,6 @@ genKey(struct pk11ContextStore **out, char *path, int mech, PRArenaPool *arena,
     strcpy((char*)salt->data, iv);        
     salt->len = strlen(iv) + 1;
 
-    PORT_Memset(&der_algid, 0, sizeof(der_algid));
     if(!alg){
     	/*
     	 * This is DES, or we are encoding AES - the process is the same.
@@ -285,7 +285,6 @@ genKey(struct pk11ContextStore **out, char *path, int mech, PRArenaPool *arena,
     	/*
     	 * We are decoding AES - use the supplied algid
     	 */
-    	PORT_Memset(&my_algid, 0, sizeof(my_algid));
 
     	/* Decode the base64 der encoding */
     	der_ascii =  PL_Base64Decode(alg, strlen(alg), NULL);

+ 2 - 4
ldap/servers/plugins/rootdn_access/rootdn_access.c

@@ -483,11 +483,10 @@ rootdn_check_access(Slapi_PBlock *pb){
      */
     if(daysAllowed){
         char *timestr;
-        char day[4];
+        char day[4] = {0};
         char *today = day;
 
         timestr = asctime(timeinfo); // DDD MMM dd hh:mm:ss YYYY
-        memset(day, 0 ,sizeof(day));
         memmove(day, timestr, 3); // we only want the day
         today = strToLower(today);
         daysAllowed = strToLower(daysAllowed);
@@ -600,8 +599,7 @@ rootdn_check_access(Slapi_PBlock *pb){
          *  Check if we are IPv4, so we can grab the correct IP addr for "ip_str"
          */
         if ( PR_IsNetAddrType( client_addr, PR_IpAddrV4Mapped ) ) {
-   	        PRNetAddr v4addr;
-   	        memset( &v4addr, 0, sizeof( v4addr ) );
+   	        PRNetAddr v4addr = {{0}};
    	        v4addr.inet.family = PR_AF_INET;
    	        v4addr.inet.ip = client_addr->ipv6.ip.pr_s6_addr32[3];
    	        if( PR_NetAddrToString( &v4addr, ip_str, sizeof( ip_str )) != PR_SUCCESS){

+ 0 - 1
ldap/servers/slapd/add.c

@@ -268,7 +268,6 @@ done:
     if(result_pb==NULL)
 	{
         result_pb = slapi_pblock_new();
-        pblock_init(result_pb);
         slapi_pblock_set(result_pb, SLAPI_PLUGIN_INTOP_RESULT, &opresult);
 	}
 	

+ 5 - 10
ldap/servers/slapd/attrsyntax.c

@@ -1010,11 +1010,10 @@ attr_syntax_create(
 )
 {
 	char			*s;
-	struct asyntaxinfo	a;
+	struct asyntaxinfo a = {0};
 	int rc = LDAP_SUCCESS;
 
 	/* XXXmcs: had to cast away const in many places below */
-	memset(&a, 0, sizeof(a));
 	*asip = NULL;
 	a.asi_name = slapi_ch_strdup(attr_names[0]);
 	if ( NULL != attr_names[1] ) {
@@ -1403,9 +1402,8 @@ attr_syntax_force_to_delete(struct asyntaxinfo *asip, void *arg)
 void
 attr_syntax_all_clear_flag( unsigned long flag )
 {
-	struct attr_syntax_enum_flaginfo fi;
+	struct attr_syntax_enum_flaginfo fi = {0};
 
-	memset( &fi, 0, sizeof(fi));
 	fi.asef_flag = flag;
 	attr_syntax_enumerate_attrs( attr_syntax_clear_flag_callback,
 				(void *)&fi, PR_TRUE );
@@ -1419,9 +1417,8 @@ attr_syntax_all_clear_flag( unsigned long flag )
 void
 attr_syntax_delete_all_not_flagged( unsigned long flag )
 {
-	struct attr_syntax_enum_flaginfo fi;
+	struct attr_syntax_enum_flaginfo fi = {0};
 
-	memset( &fi, 0, sizeof(fi));
 	fi.asef_flag = flag;
 	attr_syntax_enumerate_attrs( attr_syntax_delete_if_not_flagged,
 				(void *)&fi, PR_TRUE );
@@ -1433,9 +1430,8 @@ attr_syntax_delete_all_not_flagged( unsigned long flag )
 void
 attr_syntax_delete_all()
 {
-	struct attr_syntax_enum_flaginfo fi;
+	struct attr_syntax_enum_flaginfo fi = {0};
 
-	memset( &fi, 0, sizeof(fi));
 	attr_syntax_enumerate_attrs( attr_syntax_force_to_delete,
 				(void *)&fi, PR_TRUE );
 }
@@ -1447,9 +1443,8 @@ attr_syntax_delete_all()
 void
 attr_syntax_delete_all_for_schemareload(unsigned long flag)
 {
-	struct attr_syntax_enum_flaginfo fi;
+	struct attr_syntax_enum_flaginfo fi = {0};
 
-	memset(&fi, 0, sizeof(fi));
 	fi.asef_flag = flag;
 	attr_syntax_enumerate_attrs_ext(oid2asi, attr_syntax_delete_if_not_flagged,
 	                                (void *)&fi);

+ 3 - 4
ldap/servers/slapd/back-ldbm/import-threads.c

@@ -3670,7 +3670,7 @@ dse_conf_verify_core(struct ldbminfo *li, char *src_dir, char *file_name, char *
     Slapi_Entry **backup_entries = NULL;
     Slapi_Entry **bep = NULL;
     Slapi_Entry **curr_entries = NULL;
-    Slapi_PBlock srch_pb;
+    Slapi_PBlock srch_pb = {0};
     
     filename = slapi_ch_smprintf("%s/%s", src_dir, file_name);
 
@@ -3732,10 +3732,9 @@ dse_conf_verify_core(struct ldbminfo *li, char *src_dir, char *file_name, char *
         bep++;
     }
     /* 623986: terminate the list if we reallocated backup_entries */
-    if (backup_entry_len > 256)
+    if (backup_entry_len > 256) {
        *bep = NULL;
-
-    pblock_init(&srch_pb);
+    }
 
     if (entry_filter != NULL)
     { /* Single instance restoration */

+ 1 - 2
ldap/servers/slapd/back-ldbm/ldbm_config.c

@@ -2230,10 +2230,9 @@ void ldbm_config_internal_set(struct ldbminfo *li, char *attrname, char *value)
  */
 void replace_ldbm_config_value(char *conftype, char *val, struct ldbminfo *li)
 {
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     Slapi_Mods smods;
 
-    pblock_init(&pb);
     slapi_mods_init(&smods, 1);
     slapi_mods_add(&smods, LDAP_MOD_REPLACE, conftype, strlen(val), val);
     slapi_modify_internal_set_pb(&pb, CONFIG_LDBM_DN,

+ 4 - 5
ldap/servers/slapd/back-ldbm/ldbm_modrdn.c

@@ -1037,9 +1037,9 @@ ldbm_back_modrdn( Slapi_PBlock *pb )
                 for ( i = 0; rdns[i] != NULL; i++ ) 
                 {
                     char *type;
-                    Slapi_Value *svp[2];
-                    Slapi_Value sv;
-                    memset(&sv,0,sizeof(Slapi_Value));
+                    Slapi_Value *svp[2] = {0};
+                    /* Have to use long form init due to presence of internal struct */
+                    Slapi_Value sv = {{0}, 0, 0};
                     if ( slapi_rdn2typeval( rdns[i], &type, &sv.bv ) != 0 ) 
                     {
                         slapi_log_err(SLAPI_LOG_ERR, "ldbm_back_modrdn",
@@ -2020,9 +2020,8 @@ moddn_rename_child_entry(
         entry_set_maxcsn(e->ep_entry, opcsn);
     }
     {
-        Slapi_Mods smods;
+        Slapi_Mods smods = {0};
         Slapi_Mods *smodsp = NULL;
-        memset(&smods, 0, sizeof(smods));
         slapi_mods_init(&smods, 2);
         slapi_mods_add( &smods, LDAP_MOD_DELETE, LDBM_ENTRYDN_STR, 
                     strlen( backentry_get_ndn(e) ), backentry_get_ndn(e) );

+ 6 - 9
ldap/servers/slapd/connection.c

@@ -104,7 +104,7 @@ connection_get_operation(void)
 {
 	struct Slapi_op_stack *stack_obj = (struct Slapi_op_stack *)PR_StackPop(op_stack);
 	if (!stack_obj) {
-		stack_obj = (struct Slapi_op_stack *)slapi_ch_malloc(sizeof(struct Slapi_op_stack));
+		stack_obj = (struct Slapi_op_stack *)slapi_ch_calloc(1, sizeof(struct Slapi_op_stack));
 		stack_obj->op = operation_new( plugin_build_operation_action_bitmap( 0,
 				plugin_get_server_plg() ));
 	} else {
@@ -282,8 +282,7 @@ connection_reset(Connection* conn, int ns, PRNetAddr * from, int fromLen, int is
         memcpy( conn->cin_addr, from, sizeof( PRNetAddr ) );
 		
         if ( PR_IsNetAddrType( conn->cin_addr, PR_IpAddrV4Mapped ) ) {
-            PRNetAddr v4addr;
-            memset( &v4addr, 0, sizeof( v4addr ) );
+            PRNetAddr v4addr = {{0}};
             v4addr.inet.family = PR_AF_INET;
             v4addr.inet.ip = conn->cin_addr->ipv6.ip.pr_s6_addr32[3];
             PR_NetAddrToString( &v4addr, buf_ip, sizeof( buf_ip ) );
@@ -295,7 +294,7 @@ connection_reset(Connection* conn, int ns, PRNetAddr * from, int fromLen, int is
     } else {
         /* try syscall since "from" was not given and PR_GetPeerName failed */
         /* a corner case */
-        struct sockaddr_in addr; /* assuming IPv4 */
+        struct sockaddr_in addr = {0}; /* assuming IPv4 */
 #if ( defined( hpux ) )
         int addrlen;
 #else
@@ -303,7 +302,6 @@ connection_reset(Connection* conn, int ns, PRNetAddr * from, int fromLen, int is
 #endif
 
         addrlen = sizeof( addr );
-        memset( &addr, 0, addrlen );
 
         if ( (conn->c_prfd == NULL) &&
 	         (getpeername( conn->c_sd, (struct sockaddr *)&addr, &addrlen ) == 0) )
@@ -344,8 +342,7 @@ connection_reset(Connection* conn, int ns, PRNetAddr * from, int fromLen, int is
                     PL_strncpyz(buf_destip, "unknown local file", sizeof(buf_destip));
                 }
             } else if ( PR_IsNetAddrType( conn->cin_destaddr, PR_IpAddrV4Mapped ) ) {
-                PRNetAddr v4destaddr;
-                memset( &v4destaddr, 0, sizeof( v4destaddr ) );
+                PRNetAddr v4destaddr = {{0}};
                 v4destaddr.inet.family = PR_AF_INET;
                 v4destaddr.inet.ip = conn->cin_destaddr->ipv6.ip.pr_s6_addr32[3];
                 PR_NetAddrToString( &v4destaddr, buf_destip, sizeof( buf_destip ) );
@@ -360,7 +357,7 @@ connection_reset(Connection* conn, int ns, PRNetAddr * from, int fromLen, int is
     } else {
         /* try syscall since c_prfd == NULL */
         /* a corner case */
-        struct sockaddr_in	destaddr; /* assuming IPv4 */
+        struct sockaddr_in destaddr = {0}; /* assuming IPv4 */
 #if ( defined( hpux ) )
         int destaddrlen;
 #else
@@ -368,7 +365,7 @@ connection_reset(Connection* conn, int ns, PRNetAddr * from, int fromLen, int is
 #endif
 
         destaddrlen = sizeof( destaddr );
-        memset( &destaddr, 0, destaddrlen );
+
         if ( (getsockname( conn->c_sd, (struct sockaddr *)&destaddr, &destaddrlen ) == 0) ) {
             conn->cin_destaddr = (PRNetAddr *)slapi_ch_malloc( sizeof( PRNetAddr ));
             memset( conn->cin_destaddr, 0, sizeof( PRNetAddr ));

+ 9 - 12
ldap/servers/slapd/daemon.c

@@ -2464,7 +2464,7 @@ handle_new_connection(Connection_Table *ct, int tcps, PRFileDesc *pr_acceptfd, i
 	int ns = 0;
 	Connection *conn = NULL;
 	/*	struct sockaddr_in	from;*/
-	PRNetAddr from;
+	PRNetAddr from = {{0}};
 	PRFileDesc *pr_clonefd = NULL;
 	ber_len_t maxbersize;
 	slapdFrontendConfig_t *fecfg = getFrontendConfig();
@@ -2472,7 +2472,6 @@ handle_new_connection(Connection_Table *ct, int tcps, PRFileDesc *pr_acceptfd, i
 	if (newconn) {
 		*newconn = NULL;
 	}
-	memset(&from, 0, sizeof(from)); /* reset to nulls so we can see what was set */
 	if ( (ns = accept_and_configure( tcps, pr_acceptfd, &from,
 		sizeof(from), secure, local, &pr_clonefd)) == SLAPD_INVALID_SOCKET ) {
 		return -1;
@@ -2519,8 +2518,7 @@ handle_new_connection(Connection_Table *ct, int tcps, PRFileDesc *pr_acceptfd, i
 						LBER_SBIOD_LEVEL_PROVIDER, conn );
 #else /* !USE_OPENLDAP */
     {
-		struct lber_x_ext_io_fns func_pointers;
-		memset(&func_pointers, 0, sizeof(func_pointers));
+		struct lber_x_ext_io_fns func_pointers = {0};
 		func_pointers.lbextiofn_size = LBER_X_EXTIO_FNS_SIZE;
 		func_pointers.lbextiofn_read = NULL; /* see connection_read_function */
 		func_pointers.lbextiofn_write = write_function;
@@ -3044,7 +3042,6 @@ slapd_listenhost2addr(const char *listenhost, PRNetAddr ***addr)
 			void *iter = NULL;
 			int addrcnt = 0;
 			int i = 0;
-			memset( netaddr, 0, sizeof( PRNetAddr ));
 			/* need to count the address, first */
 			while ( (iter = PR_EnumerateAddrInfo( iter, infop, 0, netaddr ))
 							!= NULL ) {
@@ -3391,17 +3388,17 @@ static void
 get_loopback_by_addr( void )
 {
 #ifdef GETHOSTBYADDR_BUF_T
-    struct hostent		hp;
-	GETHOSTBYADDR_BUF_T	hbuf;
+    struct hostent      hp = {0};
+    GETHOSTBYADDR_BUF_T hbuf;
 #endif
-    unsigned long	ipaddr;
-    struct in_addr	ia;
-    int				herrno, rc = 0;
+    unsigned long   ipaddr;
+    struct in_addr  ia;
+    int             herrno = 0;
+    int             rc = 0;
 
-    memset( (char *)&hp, 0, sizeof(hp));
     ipaddr = htonl( INADDR_LOOPBACK );
     (void) GETHOSTBYADDR( (char *)&ipaddr, sizeof( ipaddr ),
-	    AF_INET, &hp, hbuf, sizeof(hbuf), &herrno );
+        AF_INET, &hp, hbuf, sizeof(hbuf), &herrno );
 }
 #endif /* RESOLVER_NEEDS_LOW_FILE_DESCRIPTORS */
 

+ 6 - 9
ldap/servers/slapd/defbackend.c

@@ -32,8 +32,8 @@
 /*
  * ---------------- Static Variables -----------------------------------------
  */
-static struct slapdplugin	defbackend_plugin;
-static Slapi_Backend			*defbackend_backend = NULL;
+static struct slapdplugin   defbackend_plugin = {0};
+static Slapi_Backend            *defbackend_backend = NULL;
 
 
 /*
@@ -58,26 +58,23 @@ defbackend_init( void )
 {
     int			rc;
     char		*errmsg;
-    Slapi_PBlock	pb;
+    Slapi_PBlock    pb = {0};
 
     slapi_log_err(SLAPI_LOG_TRACE, "defbackend_init", "<==\n");
 
     /*
      * create a new backend
      */
-    pblock_init( &pb );
     defbackend_backend = slapi_be_new( DEFBACKEND_TYPE , DEFBACKEND_TYPE, 1 /* Private */, 0 /* Do Not Log Changes */ );
-    if (( rc = slapi_pblock_set( &pb, SLAPI_BACKEND, defbackend_backend ))
-	    != 0 ) {
-	errmsg = "slapi_pblock_set SLAPI_BACKEND failed";
-	goto cleanup_and_return;
+    if (( rc = slapi_pblock_set( &pb, SLAPI_BACKEND, defbackend_backend )) != 0 ) {
+        errmsg = "slapi_pblock_set SLAPI_BACKEND failed";
+        goto cleanup_and_return;
     }
 
     /*
      * create a plugin structure for this backend since the
      * slapi_pblock_set()/slapi_pblock_get() functions assume there is one.
      */
-    memset( &defbackend_plugin, '\0', sizeof( struct slapdplugin ));
     defbackend_plugin.plg_type = SLAPI_PLUGIN_DATABASE;
     defbackend_backend->be_database = &defbackend_plugin;
     if (( rc = slapi_pblock_set( &pb, SLAPI_PLUGIN, &defbackend_plugin ))

+ 1 - 3
ldap/servers/slapd/delete.c

@@ -107,12 +107,10 @@ free_and_return:;
 Slapi_PBlock *
 slapi_delete_internal(const char *idn, LDAPControl **controls, int dummy)
 {
-    Slapi_PBlock	pb;
+    Slapi_PBlock    pb = {0};
     Slapi_PBlock    *result_pb;
     int             opresult;
 
-    pblock_init (&pb);
-
     slapi_delete_internal_set_pb (&pb, idn, controls, NULL, plugin_get_default_component_id(), 0);
 
 	delete_internal_pb (&pb);

+ 6 - 8
ldap/servers/slapd/entry.c

@@ -4102,7 +4102,6 @@ slapi_entry_diff(Slapi_Mods *smods, Slapi_Entry *e1, Slapi_Entry *e2, int diff_c
 static void
 delete_subtree(Slapi_PBlock *pb, const char *dn, void *plg_id)
 {
-    Slapi_PBlock mypb;
     int ret = 0;
     int opresult;
 
@@ -4117,11 +4116,11 @@ delete_subtree(Slapi_PBlock *pb, const char *dn, void *plg_id)
         Slapi_DN *rootDN = slapi_sdn_new_dn_byval(dn);
         slapi_pblock_get(pb, SLAPI_PLUGIN_INTOP_SEARCH_ENTRIES, &entries);
         for (ep = entries; ep && *ep; ep++) {
+            Slapi_PBlock mypb = {0};
             const Slapi_DN *sdn = slapi_entry_get_sdn_const(*ep);
-            
-            if (slapi_sdn_compare(sdn, rootDN) == 0)
+            if (slapi_sdn_compare(sdn, rootDN) == 0) {
                 continue;
-            pblock_init(&mypb);
+            }
             slapi_delete_internal_set_pb(&mypb, slapi_sdn_get_dn(sdn),
                 NULL, NULL, plg_id, 0);
             slapi_delete_internal_pb(&mypb);
@@ -4157,7 +4156,6 @@ slapi_entries_diff(Slapi_Entry **old_entries, Slapi_Entry **curr_entries,
     char *my_logging_prestr = "";
     Slapi_Entry **oep, **cep;
     int rval = 0;
-    Slapi_PBlock pb;
 #define SLAPI_ENTRY_FLAG_DIFF_IN_BOTH 0x80
 
     if (NULL != logging_prestr && '\0' != *logging_prestr)
@@ -4222,7 +4220,7 @@ slapi_entries_diff(Slapi_Entry **old_entries, Slapi_Entry **curr_entries,
                 }
                 if (0 == isfirst && force_update && testall)
                 {
-                    pblock_init(&pb);
+                    Slapi_PBlock pb = {0};
                     slapi_modify_internal_set_pb_ext(&pb, 
                                 slapi_entry_get_sdn_const(*oep),
                                 slapi_mods_get_ldapmods_byref(smods),
@@ -4250,9 +4248,9 @@ slapi_entries_diff(Slapi_Entry **old_entries, Slapi_Entry **curr_entries,
             {
                 if (force_update)
                 {
+                    Slapi_PBlock pb = {0};
                     LDAPMod **mods;
                     slapi_entry2mods(*oep, NULL, &mods);
-                    pblock_init(&pb);
                     slapi_add_internal_set_pb(&pb, slapi_entry_get_dn_const(*oep),
                                               mods, NULL, plg_id, 0);
                     slapi_add_internal_pb(&pb);
@@ -4279,7 +4277,7 @@ slapi_entries_diff(Slapi_Entry **old_entries, Slapi_Entry **curr_entries,
             if (testall)
             {
                 if (force_update) {
-                    pblock_init(&pb);
+                    Slapi_PBlock pb = {0};
                     delete_subtree(&pb, slapi_entry_get_dn_const(*cep), plg_id);
                     pblock_done(&pb);
                 }

+ 1 - 3
ldap/servers/slapd/fedse.c

@@ -1556,9 +1556,7 @@ static int
 init_dse_file(const char *configdir, Slapi_DN *config)
 {
     int rc= 1; /* OK */
-	Slapi_PBlock pb;
-
-	memset(&pb, 0, sizeof(pb));
+    Slapi_PBlock pb = {0};
 
     if(pfedse==NULL)
     {

+ 2 - 3
ldap/servers/slapd/filter.c

@@ -774,10 +774,9 @@ slapi_filter_free( struct slapi_filter *f, int recurse )
 		slapi_ch_free((void**)&f->f_mr_type);
 		slapi_ber_bvdone(&f->f_mr_value);
 		if (f->f_mr.mrf_destroy != NULL) {
-		    Slapi_PBlock pb;
-		    pblock_init (&pb);
+		    Slapi_PBlock pb = {0};
 		    if ( ! slapi_pblock_set (&pb, SLAPI_PLUGIN_OBJECT, f->f_mr.mrf_object)) {
-			f->f_mr.mrf_destroy (&pb);
+			    f->f_mr.mrf_destroy (&pb);
 		    }
 		}
 		break;

+ 3 - 5
ldap/servers/slapd/generation.c

@@ -59,13 +59,11 @@ get_database_dataversion(const char *dn)
 void
 set_database_dataversion(const char *dn, const char *dataversion)
 {
-    LDAPMod gen_mod;
-	LDAPMod	*mods[2];
+    LDAPMod gen_mod = {0};
+    LDAPMod *mods[2] = {0};
     struct berval* gen_vals[2];
     struct berval gen_val;
-	Slapi_PBlock *pb;
-
-	memset (&gen_mod, 0, sizeof(gen_mod));
+    Slapi_PBlock *pb;
 
 	gen_mod.mod_op = LDAP_MOD_REPLACE | LDAP_MOD_BVALUES;
 	gen_mod.mod_type = "nsslapd-dataversion"; /* JCMREPL - Shouldn't be a Netscape specific attribute name */

+ 1 - 3
ldap/servers/slapd/getsocketpeer.c

@@ -82,7 +82,7 @@ int slapd_get_socket_peer(PRFileDesc *nspr_fd, uid_t *uid, gid_t *gid)
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <errno.h>
-	struct msghdr msg;
+	struct msghdr msg = {0};
 	struct iovec iov;
 	char dummy[8];
 	int pass_sd[2];
@@ -90,8 +90,6 @@ int slapd_get_socket_peer(PRFileDesc *nspr_fd, uid_t *uid, gid_t *gid)
 	unsigned int retrycnt = 0xffffffff;	/* safety net */
 	int myerrno = 0;
 
-	memset((void *)&msg, 0, sizeof(msg));
-	
 	iov.iov_base = dummy;
 	iov.iov_len = sizeof(dummy);
 	msg.msg_iov = &iov;

+ 3 - 9
ldap/servers/slapd/ldaputil.c

@@ -1776,8 +1776,8 @@ credentials_are_valid(
 {
     char *logname = "credentials_are_valid";
     int myrc = 0;
-    krb5_creds mcreds; /* match these values */
-    krb5_creds creds; /* returned creds */
+    krb5_creds mcreds = {0}; /* match these values */
+    krb5_creds creds = {0}; /* returned creds */
     char *tgs_princ_name = NULL;
     krb5_timestamp currenttime;
     int authtracelevel = SLAPI_LOG_SHELL; /* special auth tracing */
@@ -1786,8 +1786,6 @@ credentials_are_valid(
     int time_buffer = 30; /* seconds - go ahead and renew if creds are
                              about to expire  */
 
-    memset(&mcreds, 0, sizeof(mcreds));
-    memset(&creds, 0, sizeof(creds));
     *rc = 0;
     if (!cc) {
         /* ok - no error */
@@ -1890,7 +1888,7 @@ set_krb5_creds(
     krb5_principal princ = NULL;
     char *princ_name = NULL;
     krb5_error_code rc = 0;
-    krb5_creds creds;
+    krb5_creds creds = {0};
     krb5_keytab kt = NULL;
     char *cc_name = NULL;
     char ktname[MAX_KEYTAB_NAME_LEN];
@@ -1902,10 +1900,6 @@ set_krb5_creds(
                                              appear to be used 
                                              currently */
 
-    /* wipe this out so we can safely free it later if we
-       short circuit */
-    memset(&creds, 0, sizeof(creds));
-
     /*
      * we are using static variables and sharing an in-memory credentials cache
      * so we put a lock around all kerberos interactions

+ 1 - 2
ldap/servers/slapd/log.c

@@ -3705,7 +3705,7 @@ log__delete_error_logfile(int locked)
 	int                rv = 0;
 	char               *logstr;
 	char               buffer[BUFSIZ];
-	char               tbuf[TBUFSIZE];
+	char               tbuf[TBUFSIZE] = {0};
 
 	/* If we have only one log, then  will delete this one */
 	if (loginfo.log_error_maxnumlogs == 1) {
@@ -3826,7 +3826,6 @@ delete_logfile:
 			return 0;
 		}
 	} 
-	memset(tbuf, 0, sizeof(tbuf));
 	log_convert_time (delete_logp->l_ctime, tbuf, 1 /*short */);
 	if (!locked) {
 		/* if locked, we should not call slapi_log_err, 

+ 9 - 18
ldap/servers/slapd/main.c

@@ -1167,9 +1167,8 @@ cleanup:
 void 
 signal2sigaction( int s, void *a )
 {
-    struct sigaction act;
+    struct sigaction act = {0};
 
-    memset(&act, 0, sizeof(struct sigaction));
     act.sa_handler = (VFP)a;
     act.sa_flags = 0;
     (void)sigemptyset( &act.sa_mask );
@@ -2003,7 +2002,7 @@ static int
 slapd_exemode_ldif2db(void)
 {
     int return_value= 0;
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     struct slapdplugin *plugin;
     slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
 
@@ -2094,7 +2093,6 @@ slapd_exemode_ldif2db(void)
     if (!(slapd_ldap_debug & LDAP_DEBUG_BACKLDBM)) {
         g_set_detached(1);
     }
-    memset( &pb, '\0', sizeof(pb) );
     pb.pb_backend = NULL;
     pb.pb_plugin = plugin;
     pb.pb_removedupvals = ldif2db_removedupvals;
@@ -2126,7 +2124,7 @@ static int
 slapd_exemode_db2ldif(int argc, char** argv)
 {
     int return_value= 0;
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     struct slapdplugin *plugin;
     slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
 	char *my_ldiffile;
@@ -2218,7 +2216,6 @@ slapd_exemode_db2ldif(int argc, char** argv)
 	    if (!(slapd_ldap_debug & LDAP_DEBUG_BACKLDBM)) {
 	        g_set_detached(1);
 	    }
-	    memset( &pb, '\0', sizeof(pb) );
 	    pb.pb_backend = NULL;
 	    pb.pb_plugin = plugin;
 	    pb.pb_ldif_include = db2ldif_include;
@@ -2344,7 +2341,7 @@ static int slapd_exemode_db2index(void)
 {
     int return_value= 0;
     struct slapdplugin *plugin;
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
 
     mapping_tree_init();
@@ -2414,7 +2411,6 @@ static int slapd_exemode_db2index(void)
         usage( myname, extraname );
         return 1;
     }
-    memset( &pb, '\0', sizeof(pb) );
     pb.pb_backend = NULL;
     pb.pb_plugin = plugin;
     pb.pb_db2index_attrs = db2index_attrs;
@@ -2432,7 +2428,7 @@ static int
 slapd_exemode_db2archive(void)
 {
     int return_value= 0;
-	Slapi_PBlock pb;
+	Slapi_PBlock pb = {0};
 	struct slapdplugin *backend_plugin;
 	slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
 	
@@ -2469,7 +2465,6 @@ slapd_exemode_db2archive(void)
 		g_set_detached(1);
 	}
 
-	memset( &pb, '\0', sizeof(pb) );
 	pb.pb_backend = NULL;
 	pb.pb_plugin = backend_plugin;
 	pb.pb_instance_name = NULL;
@@ -2484,7 +2479,7 @@ static int
 slapd_exemode_archive2db(void)
 {
 	int return_value= 0;
-	Slapi_PBlock pb;
+	Slapi_PBlock pb = {0};
 	struct slapdplugin *backend_plugin;
 	slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
 	
@@ -2522,7 +2517,6 @@ slapd_exemode_archive2db(void)
 		g_set_detached(1);
 	}
 
-	memset( &pb, '\0', sizeof(pb) );
 	pb.pb_backend = NULL;
 	pb.pb_plugin = backend_plugin;
 	pb.pb_instance_name = cmd_line_instance_name;
@@ -2541,7 +2535,7 @@ static int
 slapd_exemode_upgradedb(void)
 {
     int return_value= 0;
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     struct slapdplugin *backend_plugin;
     slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
 
@@ -2579,7 +2573,6 @@ slapd_exemode_upgradedb(void)
         return 1;
     }
 
-    memset( &pb, '\0', sizeof(pb) );
     pb.pb_backend = NULL;
     pb.pb_plugin = backend_plugin;
     pb.pb_seq_val = archive_name;
@@ -2608,7 +2601,7 @@ static int
 slapd_exemode_upgradednformat(void)
 {
     int rc = -1; /* error, by default */
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     struct slapdplugin *backend_plugin;
     slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
 
@@ -2650,7 +2643,6 @@ slapd_exemode_upgradednformat(void)
         goto bail;
     }
 
-    memset( &pb, '\0', sizeof(pb) );
     pb.pb_backend = NULL;
     pb.pb_plugin = backend_plugin;
     pb.pb_instance_name = cmd_line_instance_name;
@@ -2686,7 +2678,7 @@ static int
 slapd_exemode_dbverify(void)
 {
     int return_value = 0;
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     struct slapdplugin *backend_plugin;
 
     /* this should be the first time to be called!  if the init order
@@ -2706,7 +2698,6 @@ slapd_exemode_dbverify(void)
         return 1;
     }
 
-    memset( &pb, '\0', sizeof(pb) );
     pb.pb_backend = NULL;
     pb.pb_seq_type = dbverify_verbose;
     pb.pb_plugin = backend_plugin;

+ 4 - 8
ldap/servers/slapd/mapping_tree.c

@@ -3318,7 +3318,7 @@ slapi_get_suffix_by_dn(const Slapi_DN *dn)
 int
 slapi_mtn_set_referral(const Slapi_DN *sdn, char ** referral)
 {
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     Slapi_Mods smods;
     int rc = LDAP_SUCCESS,i = 0, j = 0;
     Slapi_DN* node_sdn;
@@ -3390,7 +3390,6 @@ slapi_mtn_set_referral(const Slapi_DN *sdn, char ** referral)
     
     if ( do_modify )
     {
-        pblock_init (&pb);
         slapi_modify_internal_set_pb_ext (&pb, node_sdn,
                                 slapi_mods_get_ldapmods_byref(&smods), NULL,
                                 NULL, (void *) plugin_get_default_component_id(), 0);
@@ -3416,7 +3415,7 @@ slapi_mtn_set_referral(const Slapi_DN *sdn, char ** referral)
 int
 slapi_mtn_set_state(const Slapi_DN *sdn, char *state)
 {
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     Slapi_Mods smods;
     int rc = LDAP_SUCCESS;
     Slapi_DN *node_sdn;
@@ -3444,7 +3443,6 @@ slapi_mtn_set_state(const Slapi_DN *sdn, char *state)
     /* Otherwise, means that the state has changed, modify it */
     slapi_mods_init (&smods, 1);
     slapi_mods_add(&smods, LDAP_MOD_REPLACE, "nsslapd-state", strlen(state), state);
-    pblock_init (&pb);
     slapi_modify_internal_set_pb_ext (&pb, node_sdn,
                             slapi_mods_get_ldapmods_byref(&smods), NULL,
                             NULL, (void *) plugin_get_default_component_id(), 0);
@@ -3466,7 +3464,7 @@ bail:
 Slapi_Attr *
 mtn_get_attr(char* node_dn, char * type)
 {
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     int res = 0;
     Slapi_Entry **entries = NULL;
     Slapi_Attr *attr = NULL;
@@ -3475,7 +3473,6 @@ mtn_get_attr(char* node_dn, char * type)
 
     attrs = (char **)slapi_ch_calloc(2, sizeof(char *));
     attrs[0] = slapi_ch_strdup(type);
-    pblock_init(&pb);
     slapi_search_internal_set_pb(&pb, node_dn, LDAP_SCOPE_BASE,
         "objectclass=nsMappingTree", attrs, 0, NULL, NULL,
          (void *) plugin_get_default_component_id(), 0);
@@ -3856,13 +3853,12 @@ static void dump_mapping_tree(mapping_tree_node *parent, int depth)
 static int
 _mtn_update_config_param(int op, char *type, char *strvalue)
 {
-    Slapi_PBlock confpb;
+    Slapi_PBlock confpb = {0};
     Slapi_DN sdn;
     Slapi_Mods smods;
     LDAPMod **mods;
     int rc = LDAP_PARAM_ERROR;
 
-    pblock_init (&confpb);
     slapi_mods_init (&smods, 0);
     switch (op) {
     case LDAP_MOD_DELETE:

+ 1 - 3
ldap/servers/slapd/modify.c

@@ -406,12 +406,10 @@ slapi_modify_internal(const char *idn,
                       LDAPControl **controls,
                       int dummy)
 {
-    Slapi_PBlock    pb;
+    Slapi_PBlock    pb = {0};
     Slapi_PBlock    *result_pb = NULL;
     int             opresult;
 
-    pblock_init(&pb);    	
-
 	slapi_modify_internal_set_pb (&pb, idn, (LDAPMod**)mods, controls, NULL, 
 		(void *)plugin_get_default_component_id(), 0);
 

+ 1 - 3
ldap/servers/slapd/modrdn.c

@@ -245,14 +245,12 @@ slapi_modrdn_internal(const char *iodn, const char *inewrdn, int deloldrdn, LDAP
 Slapi_PBlock *
 slapi_rename_internal(const char *iodn, const char *inewrdn, const char *inewsuperior, int deloldrdn, LDAPControl **controls, int dummy)
 {
-    Slapi_PBlock    pb;
+    Slapi_PBlock    pb = {0};
     Slapi_PBlock    *result_pb = NULL;
     int             opresult= 0;
     Slapi_DN sdn;
     Slapi_DN newsuperiorsdn;
 
-    pblock_init (&pb);   
-    
     slapi_sdn_init_dn_byref(&sdn, iodn);
     slapi_sdn_init_dn_byref(&newsuperiorsdn, inewsuperior);
 

+ 2 - 1
ldap/servers/slapd/operation.c

@@ -148,6 +148,7 @@ operation_init(Slapi_Operation *o, int flags)
 	if (NULL != o)
 	{
 		BerElement *ber = o->o_ber; /* may have already been set */
+		/* We can't get rid of this til we remove the operation stack. */
 		memset(o,0,sizeof(Slapi_Operation));
 		o->o_ber = ber;
 		o->o_msgid = -1;
@@ -195,7 +196,7 @@ operation_new(int flags)
 	BerElement *ber = NULL;
 	if(flags & OP_FLAG_INTERNAL)
 	{
-	   	o = (Slapi_Operation *) slapi_ch_malloc(sizeof(Slapi_Operation));
+	   	o = (Slapi_Operation *) slapi_ch_calloc(1, sizeof(Slapi_Operation));
 	}
 	else
 	{

+ 1 - 1
ldap/servers/slapd/pblock.c

@@ -35,7 +35,7 @@ pblock_init_common(
 )
 {
     PR_ASSERT( NULL != pb );
-    memset( pb, '\0', sizeof(Slapi_PBlock) );
+    /* No need to memset, this is only called in backend_manager, and it uses {0} */
     pb->pb_backend = be;
     pb->pb_conn = conn;
     pb->pb_op = op;

+ 7 - 12
ldap/servers/slapd/plugin.c

@@ -1753,10 +1753,9 @@ plugin_dependency_startall(int argc, char** argv, char *errmsg, int operation, c
 				if(!config[plugin_index].entry_created)
 				{
 					int plugin_actions = 0;
-					Slapi_PBlock newpb;
+					Slapi_PBlock newpb = {0};
 					Slapi_Entry *newe;
 
-					pblock_init(&newpb);
 					newe = slapi_entry_dup( config[plugin_index].e );
 					slapi_add_entry_internal_set_pb(&newpb, newe, NULL,
 									plugin_get_default_component_id(), plugin_actions);
@@ -2776,8 +2775,9 @@ plugin_free(struct slapdplugin *plugin)
 	}
 	release_componentid(plugin->plg_identity);
 	slapi_counter_destroy(&plugin->plg_op_counter);
-	if (!plugin->plg_group)
+	if (!plugin->plg_group) {
 		plugin_config_cleanup(&plugin->plg_conf);
+    }
 	slapi_ch_free((void**)&plugin);
 }
 
@@ -2844,7 +2844,7 @@ plugin_setup(Slapi_Entry *plugin_entry, struct slapi_componentid *group,
 	struct slapi_componentid *cid = NULL;
 	const char *existname = 0;
 	slapi_plugin_init_fnptr initfunc = p_initfunc;
-	Slapi_PBlock pb;
+	Slapi_PBlock pb = {0};
 	int status = 0;
 	int enabled = 1;
 	char *configdir = 0;
@@ -3067,7 +3067,6 @@ plugin_setup(Slapi_Entry *plugin_entry, struct slapi_componentid *group,
 		PR_snprintf(attrname, sizeof(attrname), "%s%d", ATTR_PLUGIN_ARG, ++ii);
 	} while (skipped < MAXSKIPPED);
 
-	memset((char *)&pb, '\0', sizeof(pb));
 	slapi_pblock_set(&pb, SLAPI_PLUGIN, plugin);
 	slapi_pblock_set(&pb, SLAPI_PLUGIN_VERSION, (void *)SLAPI_PLUGIN_CURRENT_VERSION);
 
@@ -3472,9 +3471,7 @@ plugin_remove_plugins(struct slapdplugin *plugin_entry, char *plugin_type)
                 /*
                  * Call the close function, cleanup the hashtable & the global shutdown list
                  */
-                Slapi_PBlock pb;
-
-                pblock_init(&pb);
+                Slapi_PBlock pb = {0};
                 plugin_set_stopped(plugin);
                 if (slapi_counter_get_value(plugin->plg_op_counter) > 0){
                     /*
@@ -4328,7 +4325,7 @@ bail:
 int
 slapi_set_plugin_default_config(const char *type, Slapi_Value *value)
 {
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     Slapi_Entry **entries = NULL;
     int rc = LDAP_SUCCESS;
     char **search_attrs = NULL; /* used by search */
@@ -4340,7 +4337,6 @@ slapi_set_plugin_default_config(const char *type, Slapi_Value *value)
     charray_add(&search_attrs, slapi_ch_strdup(type));
 
     /* cn=plugin default config,cn=config */
-    pblock_init(&pb);
     slapi_search_internal_set_pb(&pb,
                     SLAPI_PLUGIN_DEFAULT_CONFIG, /* Base DN (normalized) */
                     LDAP_SCOPE_BASE,
@@ -4432,7 +4428,7 @@ slapi_set_plugin_default_config(const char *type, Slapi_Value *value)
 int
 slapi_get_plugin_default_config(char *type, Slapi_ValueSet **valueset)
 {
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
     Slapi_Entry **entries = NULL;
     int rc = LDAP_PARAM_ERROR;
     char **search_attrs = NULL; /* used by search */
@@ -4444,7 +4440,6 @@ slapi_get_plugin_default_config(char *type, Slapi_ValueSet **valueset)
     charray_add(&search_attrs, slapi_ch_strdup(type));
 
     /* cn=plugin default config,cn=config */
-    pblock_init(&pb);
     slapi_search_internal_set_pb(&pb,
                     SLAPI_PLUGIN_DEFAULT_CONFIG, /* Base DN (normalized) */
                     LDAP_SCOPE_BASE,

+ 1 - 3
ldap/servers/slapd/plugin_internal_op.c

@@ -205,7 +205,7 @@ slapi_seq_callback( const char *ibase,
                     plugin_referral_entry_callback ref_callback)								
 {
 	int r;
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
 
 	if (ibase == NULL)
 	{
@@ -214,8 +214,6 @@ slapi_seq_callback( const char *ibase,
 		return -1;
 	}
 
-	pblock_init(&pb);
-
     slapi_seq_internal_set_pb(&pb, (char *)ibase, type, attrname, val, attrs, attrsonly, controls, 
 		plugin_get_default_component_id(), 0);							  
 

+ 1 - 2
ldap/servers/slapd/plugin_mr.c

@@ -574,7 +574,7 @@ plugin_mr_filter_create (mr_filter_t* f)
 {
     int rc = LDAP_UNAVAILABLE_CRITICAL_EXTENSION;
     struct slapdplugin* mrp = plugin_mr_find_registered (f->mrf_oid);
-    Slapi_PBlock pb;
+    Slapi_PBlock pb = {0};
 
     if (mrp != NULL)
     {
@@ -599,7 +599,6 @@ plugin_mr_filter_create (mr_filter_t* f)
 		if (mrp)
 		{
 		    /* set the default index create fn */
-		    pblock_init(&pb);
 		    slapi_pblock_set(&pb, SLAPI_PLUGIN, mrp);
 		    slapi_pblock_set(&pb, SLAPI_PLUGIN_MR_FILTER_CREATE_FN, default_mr_filter_create);
 		    slapi_pblock_set(&pb, SLAPI_PLUGIN_MR_INDEXER_CREATE_FN, default_mr_indexer_create);

+ 2 - 4
ldap/servers/slapd/schema.c

@@ -1807,8 +1807,7 @@ schema_list_attributes_callback(struct asyntaxinfo *asi, void *arg)
 char **
 slapi_schema_list_attribute_names(unsigned long flag)
 {
-        struct listargs aew;
-        memset(&aew,0,sizeof(struct listargs));
+        struct listargs aew = {0};
         aew.flag=flag;
 
         attr_syntax_enumerate_attrs(schema_list_attributes_callback, &aew,
@@ -5339,8 +5338,7 @@ init_schema_dse_ext(char *schemadir, Slapi_Backend *be,
 		int dont_write = 1;
 		int merge = 1;
 		int dont_dup_check = 1;
-		Slapi_PBlock pb;
-		memset(&pb, 0, sizeof(pb));
+		Slapi_PBlock pb = {0};
 		/* don't write out the file when reading */
 		slapi_pblock_set(&pb, SLAPI_DSE_DONT_WRITE_WHEN_ADDING, (void*)&dont_write);
 		/* duplicate entries are allowed */

+ 1 - 2
ldap/servers/slapd/ssl.c

@@ -938,7 +938,7 @@ freeChildren( char **list ) {
 static void
 entrySetValue(Slapi_DN *sdn, char *type, char *value)
 {
-    Slapi_PBlock mypb;
+    Slapi_PBlock mypb = {0};
     LDAPMod attr;
     LDAPMod *mods[2];
     char *values[2];
@@ -954,7 +954,6 @@ entrySetValue(Slapi_DN *sdn, char *type, char *value)
     mods[0] = &attr;
     mods[1] = NULL;
 
-    pblock_init(&mypb);
     slapi_modify_internal_set_pb_ext(&mypb, sdn, mods, NULL, NULL, (void *)plugin_get_default_component_id(), 0);
     slapi_modify_internal_pb(&mypb);
     pblock_done(&mypb);

+ 5 - 12
ldap/servers/slapd/task.c

@@ -701,15 +701,13 @@ static Slapi_Entry *get_internal_entry(Slapi_PBlock *pb, char *dn)
 
 static void modify_internal_entry(char *dn, LDAPMod **mods)
 {
-    Slapi_PBlock pb;
     Slapi_Operation *op;
     int ret = 0;
     int tries = 0;
     int dont_write_file = 1;
 
     do {
-
-        pblock_init(&pb);
+        Slapi_PBlock pb = {0};
 
         slapi_modify_internal_set_pb(&pb, dn, mods, NULL, NULL,
         (void *)plugin_get_default_component_id(), 0);
@@ -836,7 +834,7 @@ static int task_import_add(Slapi_PBlock *pb, Slapi_Entry *e,
     int idx, rv = 0;
     const char *do_attr_indexes, *uniqueid_kind_str;
     int uniqueid_kind = SLAPI_UNIQUEID_GENERATE_TIME_BASED;
-    Slapi_PBlock mypb;
+    Slapi_PBlock mypb = {0};
     Slapi_Task *task;
     char *nameFrombe_name = NULL;
     const char *encrypt_on_import = NULL;
@@ -978,7 +976,6 @@ static int task_import_add(Slapi_PBlock *pb, Slapi_Entry *e,
         goto out;
     }
 
-    memset(&mypb, 0, sizeof(mypb));
     mypb.pb_backend = be;
     mypb.pb_plugin = be->be_database;
     mypb.pb_removedupvals = atoi(fetch_attr(e, "nsImportChunkSize", "0"));
@@ -1797,7 +1794,7 @@ task_upgradedb_add(Slapi_PBlock *pb, Slapi_Entry *e, Slapi_Entry *eAfter,
     int rv = SLAPI_DSE_CALLBACK_OK;
     Slapi_Backend *be = NULL;
     Slapi_Task *task = NULL;
-    Slapi_PBlock mypb;
+    Slapi_PBlock mypb = {0};
     const char *archive_dir = NULL;
     const char *force = NULL;
     const char *database_type = "ldbm database";
@@ -1864,7 +1861,6 @@ task_upgradedb_add(Slapi_PBlock *pb, Slapi_Entry *e, Slapi_Entry *eAfter,
     task->task_work = 1;
     task->task_progress = 0;
 
-    memset(&mypb, 0, sizeof(mypb));
     mypb.pb_backend = be;
     mypb.pb_plugin = be->be_database;
     if (force && 0 == strcasecmp(force, "true"))
@@ -1956,17 +1952,14 @@ task_sysconfig_reload_add(Slapi_PBlock *pb, Slapi_Entry *e, Slapi_Entry *eAfter,
                 /* skip comments */
                 continue;
             } else {
-                char env_value[sizeof(line)];
-                char env_var[sizeof(line)];
+                char env_value[sizeof(line)] = {0};
+                char env_var[sizeof(line)] = {0};
                 int using_setenv = 0;
                 int value_index = 0;
                 int start_value = 0;
                 int var_index = 0;
                 int inquotes = 0;
 
-                memset(env_var, 0, sizeof(env_var));
-                memset(env_value, 0, sizeof(env_value));
-
                 /*
                  * Remove leading spaces and tabs
                  */

+ 1 - 2
ldap/servers/slapd/time.c

@@ -364,12 +364,11 @@ write_genTime (time_t from, struct berval* into)
 time_t
 read_genTime(struct berval*from)
 {
-	struct tm t;
+	struct tm t = {0};
 	time_t retTime;
 	time_t diffsec = 0;
 	int i, gflag = 0, havesec = 0;
 	
-    memset (&t, 0, sizeof(t));
     t.tm_isdst = -1;
     t.tm_year = strntoul (from->bv_val     , 4, 10) - 1900L;
     t.tm_mon  = strntoul (from->bv_val +  4, 2, 10) - 1;

+ 1 - 10
ldap/servers/slapd/uniqueid.c

@@ -37,16 +37,7 @@ static int isValidFormat (const char * buff);
 Slapi_UniqueID *slapi_uniqueIDNew ()
 {
 	Slapi_UniqueID *uId;
-	uId = (Slapi_UniqueID*)slapi_ch_malloc (sizeof (Slapi_UniqueID));
-
-	if (uId == NULL)
-	{
-		slapi_log_err(SLAPI_LOG_ERR, MODULE, "uniqueIDNew: "
-						 "failed to allocate new id.\n");
-		return NULL;
-	}
-
-	memset (uId, 0, sizeof (Slapi_UniqueID));
+	uId = (Slapi_UniqueID*)slapi_ch_calloc (1, sizeof (Slapi_UniqueID));
 
 	return uId;
 }

+ 3 - 8
ldap/servers/slapd/uniqueidgen.c

@@ -176,16 +176,11 @@ int slapi_uniqueIDGenerateFromNameString (char **uId,
 										  const void *name, int namelen)
 {
 	int rc;
-	Slapi_UniqueID idBase;
-	Slapi_UniqueID idGen;
+	Slapi_UniqueID idBase = {0};
+	Slapi_UniqueID idGen = {0};
 
 	/* just use Id of all 0 as base id */
-	if (uIdBase == NULL)
-	{
-		memset (&idBase, 0, sizeof (idBase));
-		memset (&idGen, 0, sizeof (idGen));
-	}
-	else
+	if (uIdBase != NULL)
 	{
 		rc = slapi_uniqueIDScan (&idBase, uIdBase);
 		if (rc != UID_SUCCESS)

+ 5 - 6
ldap/servers/slapd/util.c

@@ -412,7 +412,7 @@ filter_stuff_func(void *arg, const char *val, PRUint32 slen)
 char*
 slapi_filter_sprintf(const char *fmt, ...)
 {
-    struct filter_ctx ctx;
+    struct filter_ctx ctx = {0};
     va_list args;
     char *buf;
     int rc;
@@ -1143,7 +1143,7 @@ int
 slapd_chown_if_not_owner(const char *filename, uid_t uid, gid_t gid)
 {
         int fd = -1;
-        struct stat statbuf;
+        struct stat statbuf = {0};
         int result = 1;
         if (!filename) {
             return result;
@@ -1153,7 +1153,6 @@ slapd_chown_if_not_owner(const char *filename, uid_t uid, gid_t gid)
         if (fd == -1) {
             return result;
         }
-        memset(&statbuf, '\0', sizeof(statbuf));
         if (!(result = fstat(fd, &statbuf)))
         {
                 if (((uid != -1) && (uid != statbuf.st_uid)) ||
@@ -1519,16 +1518,16 @@ int util_info_sys_pages(size_t *pagesize, size_t *pages, size_t *procpages, size
     *availpages = util_getvirtualmemsize() / *pagesize;
     /* solaris has THE most annoying way to get this info */
     {
-        struct prpsinfo psi;
+        struct prpsinfo psi = {0};
         char fn[40];
         int fd;
 
         sprintf(fn, "/proc/%d", getpid());
         fd = open(fn, O_RDONLY);
         if (fd >= 0) {
-                memset(&psi, 0, sizeof(psi));
-            if (ioctl(fd, PIOCPSINFO, (void *)&psi) == 0)
+            if (ioctl(fd, PIOCPSINFO, (void *)&psi) == 0) {
                 *procpages = psi.pr_size;
+            }
             close(fd);
         }
     }

+ 3 - 6
ldap/servers/slapd/uuid.c

@@ -118,7 +118,7 @@ typedef struct
 
 static unsigned int uuid_seed = 0;		/* seed for the random generator */
 
-  uuid_state _state; /* generator's state */
+uuid_state _state;/* generator's state */
 
 /* uuid_init -- initializes uuid layer */
 int uuid_init (const char *configDir, const Slapi_DN *configDN, PRBool mtGen)
@@ -276,16 +276,13 @@ void uuid_create_from_name(guid_t * uuid,      /* resulting UUID */
 {
 	PK11Context *c = NULL;
 
-	unsigned char hash[16];
+	unsigned char hash[16] = {0};
 	unsigned int hashLen;
-	guid_t net_nsid;      /* context UUID in network byte order */
-
-	memset(hash, 0, 16);
+	guid_t net_nsid = {0};      /* context UUID in network byte order */
 
 	/* put name space ID in network byte order so it hashes the same
 		no matter what endian machine we're on */
 
-	memset(&net_nsid, 0, sizeof(guid_t));
 	net_nsid.time_low = PR_htonl(nsid.time_low);
 	net_nsid.time_mid = PR_htons(nsid.time_mid);
 	net_nsid.time_hi_and_version = PR_htons(nsid.time_hi_and_version);

+ 4 - 10
lib/ldaputil/certmap.c

@@ -164,11 +164,10 @@ static int certmap_name_to_secoid (const char *str)
 
 NSAPI_PUBLIC int ldapu_list_alloc (LDAPUList_t **list)
 {
-    *list = (LDAPUList_t *)malloc(sizeof(LDAPUList_t));
+    *list = (LDAPUList_t *)calloc(1, sizeof(LDAPUList_t));
 
     if (!*list) return LDAPU_ERR_OUT_OF_MEMORY;
 
-    memset((void *)*list, 0, sizeof(LDAPUList_t));
     return LDAPU_SUCCESS;
 }
 
@@ -193,13 +192,12 @@ NSAPI_PUBLIC int ldapu_list_add_info (LDAPUList_t *list, void *info)
     LDAPUListNode_t *node;
 
     /* Allocate the list node and set info in the node. */
-    node = (LDAPUListNode_t *)malloc(sizeof(LDAPUListNode_t));
+    node = (LDAPUListNode_t *)calloc(1, sizeof(LDAPUListNode_t));
 
     if (!node) {
 	return LDAPU_ERR_OUT_OF_MEMORY;
     }
 
-    memset((void *)node, 0, sizeof(LDAPUListNode_t));
     node->info = info;
 
     return ldapu_list_add_node(list, node);
@@ -281,15 +279,13 @@ static int dbinfo_to_certinfo (DBConfDBInfo_t *db_info,
 
     *certinfo_out = 0;
 
-    certinfo = (LDAPUCertMapInfo_t *)malloc(sizeof(LDAPUCertMapInfo_t));
+    certinfo = (LDAPUCertMapInfo_t *)calloc(1, sizeof(LDAPUCertMapInfo_t));
 
     if (!certinfo) {
         rv = LDAPU_ERR_OUT_OF_MEMORY;
         goto error;
     }
 
-    memset((void *)certinfo, 0, sizeof(LDAPUCertMapInfo_t));
-
     /* hijack few structures rather then copy.  Make the pointers to the
        structures NULL in the original structure so that they don't freed up
        when db_info is freed. */
@@ -1453,7 +1449,7 @@ int ldapu_certmap_init (const char *config_file,
 			LDAPUCertMapInfo_t **certmap_default)
 {
     int rv;
-    certmap_listinfo = (LDAPUCertMapListInfo_t *)malloc(sizeof(LDAPUCertMapListInfo_t));
+    certmap_listinfo = (LDAPUCertMapListInfo_t *)calloc(1, sizeof(LDAPUCertMapListInfo_t));
 
     *certmap_list = 0;
     *certmap_default = 0;
@@ -1461,8 +1457,6 @@ int ldapu_certmap_init (const char *config_file,
 
     if (!certmap_listinfo) return LDAPU_ERR_OUT_OF_MEMORY;
 
-    memset((void *)certmap_listinfo, 0, sizeof(LDAPUCertMapListInfo_t));
-
     rv = certmap_read_certconfig_file(config_file);
 
     if (rv == LDAPU_SUCCESS) {