ldap/servers/plugins/replication/cl5_api.c | 1 -
ldap/servers/plugins/replication/repl5_replica_config.c | 14 ++++++--------
2 files changed, 6 insertions(+), 9 deletions(-)
New commits:
commit 017469a1a055da03fc3fb4b34a7732611b7bd2b0
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Jan 4 09:41:38 2017 -0500
Ticket 48964 - should not free repl name after purging changelog
Bug Description: The previous commit for this ticket incorrectly
freed a replica struct const char. There was also
a minor converity issue.
Fix Description: Do not free the repl_name after purging, and do
not check if "replica" is NULL when creating the
purge data.
https://fedorahosted.org/389/ticket/48964
Reviewed by: tbordaz(Thanks!)
diff --git a/ldap/servers/plugins/replication/cl5_api.c
b/ldap/servers/plugins/replication/cl5_api.c
index 9a50f62..fc70ab7 100644
--- a/ldap/servers/plugins/replication/cl5_api.c
+++ b/ldap/servers/plugins/replication/cl5_api.c
@@ -7026,7 +7026,6 @@ cl5CleanRUV(ReplicaId rid){
static void free_purge_data(cleanruv_purge_data *purge_data)
{
slapi_ch_free_string(&purge_data->replGen);
- slapi_ch_free_string(&purge_data->replName);
slapi_ch_free((void **)&purge_data);
}
diff --git a/ldap/servers/plugins/replication/repl5_replica_config.c
b/ldap/servers/plugins/replication/repl5_replica_config.c
index 3e57d8f..053103b 100644
--- a/ldap/servers/plugins/replication/repl5_replica_config.c
+++ b/ldap/servers/plugins/replication/repl5_replica_config.c
@@ -1471,14 +1471,12 @@ replica_execute_cleanruv_task (Object *r, ReplicaId rid, char
*returntext /* not
/*
* Now purge the changelog. The purging thread will free the purge_data
*/
- if (replica){
- purge_data = (cleanruv_purge_data*)slapi_ch_calloc(1, sizeof(cleanruv_purge_data));
- purge_data->cleaned_rid = rid;
- purge_data->suffix_sdn = replica_get_root(replica);
- purge_data->replName = (char *)replica_get_name(replica);
- purge_data->replGen = replica_get_generation(replica);
- trigger_cl_purging(purge_data);
- }
+ purge_data = (cleanruv_purge_data*)slapi_ch_calloc(1, sizeof(cleanruv_purge_data));
+ purge_data->cleaned_rid = rid;
+ purge_data->suffix_sdn = replica_get_root(replica);
+ purge_data->replName = (char *)replica_get_name(replica);
+ purge_data->replGen = replica_get_generation(replica);
+ trigger_cl_purging(purge_data);
if (rc != RUV_SUCCESS){
slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name, "cleanAllRUV_task - Task
failed(%d)\n",rc);