[389-commits] ldap/servers
Richard Allen Megginson
rmeggins at fedoraproject.org
Wed May 2 15:54:53 UTC 2012
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(-)
New commits:
commit fc6a0cd3362dfdb73a43d3b52ae42a48678c2a24
Author: Rich Megginson <rmeggins at redhat.com>
Date: Wed May 2 09:17:52 2012 -0600
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: mreynolds (Thanks!)
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
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;
}
}
More information about the 389-commits
mailing list