amoralej / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 years ago
Clone
Blob Blame History Raw
From 7a5d77d8a65d65ed7c5fa94abf952669993f45c2 Mon Sep 17 00:00:00 2001
From: Ludwig Krispenz <lkrispen@redhat.com>
Date: Tue, 7 Feb 2017 17:02:00 +0100
Subject: [PATCH] fix for reg in 49008, check if ruv element exists

(cherry picked from commit 23d98baa8aadab80691680ba065563ad1e35591c)
---
 ldap/servers/plugins/replication/repl5_ruv.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/ldap/servers/plugins/replication/repl5_ruv.c b/ldap/servers/plugins/replication/repl5_ruv.c
index c2d3bb4..5086313 100644
--- a/ldap/servers/plugins/replication/repl5_ruv.c
+++ b/ldap/servers/plugins/replication/repl5_ruv.c
@@ -1703,8 +1703,14 @@ int ruv_cancel_csn_inprogress (RUV *ruv, const CSN *csn, ReplicaId local_rid)
 	replica = ruvGetReplica (ruv, prim_rid);
 	rc = csnplRemoveAll (replica->csnpl, prim_csn);
 	if (prim_rid != local_rid) {
-		replica = ruvGetReplica (ruv, local_rid);
-		rc = csnplRemoveAll (replica->csnpl, prim_csn);
+		if( local_rid != READ_ONLY_REPLICA_ID) {
+			replica = ruvGetReplica (ruv, local_rid);
+			if (replica) {
+				rc = csnplRemoveAll (replica->csnpl, prim_csn);
+			} else {
+				rc = RUV_NOTFOUND;
+			}
+		}
 	}
     } else {
 	rc = csnplRemove (replica->csnpl, csn);
-- 
2.7.4