From 0fe40e4ebdf0f1be5e96c5b7ad445bd2ec58d157 Mon Sep 17 00:00:00 2001
From: Pierangelo Masarati <ando@openldap.org>
Date: Sat, 11 Dec 2004 14:06:21 +0000
Subject: [PATCH] temporarily work around ITS#3433; need to understand why it
 happens and how to fix it correctly

---
 servers/slapd/backover.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/servers/slapd/backover.c b/servers/slapd/backover.c
index 3f2bc9b766..43299c1e06 100644
--- a/servers/slapd/backover.c
+++ b/servers/slapd/backover.c
@@ -253,13 +253,21 @@ over_op_func(
 	enum op_which which
 )
 {
-	slap_overinfo *oi = op->o_bd->bd_info->bi_private;
-	slap_overinst *on = oi->oi_list;
+	slap_overinfo *oi;
+	slap_overinst *on;
 	BI_op_bind **func;
 	BackendDB *be = op->o_bd, db;
 	slap_callback cb = {NULL, over_back_response, NULL, NULL};
 	int rc = SLAP_CB_CONTINUE;
 
+	if ( op->o_bd == NULL ) {
+		/* FIXME: happens for instance during abandon... */
+		return 0;
+	}
+
+	oi = op->o_bd->bd_info->bi_private;
+	on = oi->oi_list;
+
  	if ( !SLAP_ISOVERLAY( op->o_bd )) {
  		db = *op->o_bd;
 		db.be_flags |= SLAP_DBFLAG_OVERLAY;
-- 
GitLab