andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 months ago
Clone
Blob Blame History Raw
From 496b3bc1eced77b8a34f9a6c4ba86da58349c682 Mon Sep 17 00:00:00 2001
From: Rich Megginson <rmeggins@redhat.com>
Date: Wed, 31 Jul 2013 10:49:18 -0600
Subject: [PATCH 68/99] fix coverity 11895 - null deref - caused by fix to
 ticket 47392

reviewed by: nhosoi (Thanks!)
(cherry picked from commit b61143cc79cb5c3e23f403c4980f8a03ab7426c0)
(cherry picked from commit 03a67b1432bbafe5eb7a82a8afd0832f220c229b)
(cherry picked from commit 877fee5b6228faf471eefed9a073dff13074b224)
(cherry picked from commit 89a98eb66264718e3d7431a4cda92afe08371a84)
---
 ldap/servers/plugins/replication/repl5_plugins.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/ldap/servers/plugins/replication/repl5_plugins.c b/ldap/servers/plugins/replication/repl5_plugins.c
index 7aa2e2c..afb0364 100644
--- a/ldap/servers/plugins/replication/repl5_plugins.c
+++ b/ldap/servers/plugins/replication/repl5_plugins.c
@@ -1117,9 +1117,13 @@ write_changelog_and_ruv (Slapi_PBlock *pb)
 	  just read from the changelog in either the supplier or consumer ruv
 	*/
 	if (0 == return_value) {
-		char csn_str[CSN_STRSIZE];
+		char csn_str[CSN_STRSIZE] = {'\0'};
 		CSN *opcsn;
 		int rc;
+		const char *dn = op_params ? REPL_GET_DN(&op_params->target_address) : "unknown";
+		char *uniqueid = op_params ? op_params->target_address.uniqueid : "unknown";
+		unsigned long optype = op_params ? op_params->operation_type : 0;
+		CSN *oppcsn = op_params ? op_params->csn : NULL;
 
 		slapi_pblock_get( pb, SLAPI_OPERATION, &op );
 		opcsn = operation_get_csn(op);
@@ -1128,18 +1132,14 @@ write_changelog_and_ruv (Slapi_PBlock *pb)
         		slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name,
 					"write_changelog_and_ruv: RUV already covers csn for "
 					"%s (uniqid: %s, optype: %lu) csn %s\n",
-					REPL_GET_DN(&op_params->target_address),
-					op_params->target_address.uniqueid,
-					op_params->operation_type,
-					csn_as_string(op_params->csn, PR_FALSE, csn_str));
+					dn, uniqueid, optype,
+					csn_as_string(oppcsn, PR_FALSE, csn_str));
 		} else if (rc != RUV_SUCCESS) {
         		slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name,
 					"write_changelog_and_ruv: failed to update RUV for "
 					"%s (uniqid: %s, optype: %lu) to changelog csn %s\n",
-					REPL_GET_DN(&op_params->target_address),
-					op_params->target_address.uniqueid,
-					op_params->operation_type,
-					csn_as_string(op_params->csn, PR_FALSE, csn_str));
+					dn, uniqueid, optype,
+					csn_as_string(oppcsn, PR_FALSE, csn_str));
 		}
 	}
 
-- 
1.8.1.4