From 469f69bb9301fe0e32dca7fb46fce02815d5fa5a Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Wed, 2 May 2012 09:17:52 -0600 Subject: [PATCH] Ticket #353 - coverity 12625-12629 - leaks, dead code, unchecked return https://fedorahosted.org/389/ticket/353 Resolves: Ticket #353 Bug Description: coverity 12625-12629 - leaks, dead code, unchecked return Reviewed by: ??? Branch: master Fix Description: In addition to the errors fixed, I added the use of slapi_entry_attr_get_bool() so that values of true, yes, etc. could be used in addition to on/off. Platforms tested: RHEL6 x86_64 Flag Day: no Doc impact: no --- ldap/servers/plugins/memberof/memberof.c | 3 ++- ldap/servers/plugins/replication/cl5_api.c | 9 +++++---- ldap/servers/plugins/replication/repl5_agmt.c | 20 +++++++++++++++----- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c index 229b962..c98d8ad 100644 --- a/ldap/servers/plugins/memberof/memberof.c +++ b/ldap/servers/plugins/memberof/memberof.c @@ -513,7 +513,7 @@ int memberof_del_dn_type_callback(Slapi_Entry *e, void *callback_data) int memberof_call_foreach_dn(Slapi_PBlock *pb, char *dn, char **types, plugin_search_entry_callback callback, void *callback_data) { - Slapi_PBlock *search_pb = slapi_pblock_new(); + Slapi_PBlock *search_pb = NULL; Slapi_DN *base_sdn = NULL; Slapi_Backend *be = NULL; Slapi_DN *sdn = NULL; @@ -565,6 +565,7 @@ int memberof_call_foreach_dn(Slapi_PBlock *pb, char *dn, return rc; } + search_pb = slapi_pblock_new(); be = slapi_get_first_backend(&cookie); while(be){ if(!all_backends){ diff --git a/ldap/servers/plugins/replication/cl5_api.c b/ldap/servers/plugins/replication/cl5_api.c index 4c23af5..2819511 100644 --- a/ldap/servers/plugins/replication/cl5_api.c +++ b/ldap/servers/plugins/replication/cl5_api.c @@ -6556,9 +6556,6 @@ cl5CleanRUV(ReplicaId rid){ ruv_delete_replica(file->maxRUV, rid); obj = objset_next_obj(s_cl5Desc.dbFiles, obj); } - - if (obj) - object_release (obj); } void trigger_cl_trimming(){ @@ -6585,7 +6582,11 @@ trigger_cl_trimming_thread(){ if(s_cl5Desc.dbState == CL5_STATE_CLOSED || s_cl5Desc.dbState == CL5_STATE_CLOSING){ return; } - _cl5AddThread(); + if (CL5_SUCCESS != _cl5AddThread()) { + slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, + "trigger_cl_trimming: failed to increment thread count " + "NSPR error - %d\n", PR_GetError ()); + } _cl5DoTrimming(); _cl5RemoveThread(); } diff --git a/ldap/servers/plugins/replication/repl5_agmt.c b/ldap/servers/plugins/replication/repl5_agmt.c index cdd074e..d194acc 100644 --- a/ldap/servers/plugins/replication/repl5_agmt.c +++ b/ldap/servers/plugins/replication/repl5_agmt.c @@ -341,11 +341,14 @@ agmt_new_from_entry(Slapi_Entry *e) tmpstr = slapi_entry_attr_get_charptr(e, type_nsds5ReplicaEnabled); if (NULL != tmpstr) { - if(strcasecmp(tmpstr, "on") == 0){ + if(strcasecmp(tmpstr, "off") == 0){ + ra->is_enabled = PR_FALSE; + } else if(strcasecmp(tmpstr, "on") == 0){ ra->is_enabled = PR_TRUE; } else { - ra->is_enabled = PR_FALSE; + ra->is_enabled = slapi_entry_attr_get_bool(e, type_nsds5ReplicaEnabled); } + slapi_ch_free_string(&tmpstr); } else { ra->is_enabled = PR_TRUE; } @@ -2499,14 +2502,22 @@ agmt_set_enabled_from_entry(Repl_Agmt *ra, Slapi_Entry *e){ PR_Lock(ra->lock); attr_val = slapi_entry_attr_get_charptr(e, type_nsds5ReplicaEnabled); if(attr_val){ - if(strcasecmp(attr_val,"on") == 0){ + PRBool is_enabled = PR_TRUE; + if(strcasecmp(attr_val,"off") == 0){ + is_enabled = PR_FALSE; + } else if(strcasecmp(attr_val,"on") == 0){ + is_enabled = PR_TRUE; + } else { + is_enabled = slapi_entry_attr_get_bool(e, type_nsds5ReplicaEnabled); + } + slapi_ch_free_string(&attr_val); + if(is_enabled){ if(!ra->is_enabled){ ra->is_enabled = PR_TRUE; slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name, "agmt_set_enabled_from_entry: " "agreement is now enabled (%s)\n",ra->long_name); PR_Unlock(ra->lock); agmt_start(ra); - slapi_ch_free_string(&attr_val); return rc; } } else { @@ -2518,7 +2529,6 @@ agmt_set_enabled_from_entry(Repl_Agmt *ra, Slapi_Entry *e){ agmt_stop(ra); agmt_update_consumer_ruv(ra); agmt_set_last_update_status(ra,0,0,"agreement disabled"); - slapi_ch_free_string(&attr_val); return rc; } } -- 1.7.1