From 7ab4a41a4ca9afe37f71403ca7d8aee0a20c7d9c Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Wed, 21 Jan 2009 20:43:49 +0000
Subject: [PATCH] ITS#5889

---
 CHANGES                          |  1 +
 servers/slapd/back-meta/search.c | 14 +++++++-------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/CHANGES b/CHANGES
index 22caa82476..943dec55a8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -23,6 +23,7 @@ OpenLDAP 2.4.14 Engineering
 	Fixed slapd-ldif rename on same DN (ITS#5319)
 	Fixed slapd-ldif deadlock (ITS#5329)
 	Fixed slapd-meta double response sending (ITS#5854)
+	Fixed slapd-meta alias deref for retry (ITS#5889)
 	Fixed slapo-ppolicy to not be global (ITS#5858)
 	Updated contrib/addpartial module (ITS#5764)
 	Added contrib/cloak module (ITS#5872)
diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c
index da9fa387ec..c90e0e13fc 100644
--- a/servers/slapd/back-meta/search.c
+++ b/servers/slapd/back-meta/search.c
@@ -583,13 +583,6 @@ meta_back_search_start(
 		goto done;
 	}
 
-	/* should we check return values? */
-	if ( op->ors_deref != -1 ) {
-		assert( msc->msc_ld != NULL );
-		(void)ldap_set_option( msc->msc_ld, LDAP_OPT_DEREF,
-				( void * )&op->ors_deref );
-	}
-
 	if ( op->ors_tlimit != SLAP_NO_LIMIT ) {
 		tv.tv_sec = op->ors_tlimit > 0 ? op->ors_tlimit : 1;
 		tv.tv_usec = 0;
@@ -597,6 +590,13 @@ meta_back_search_start(
 	}
 
 retry:;
+	/* should we check return values? */
+	if ( op->ors_deref != -1 ) {
+		assert( msc->msc_ld != NULL );
+		(void)ldap_set_option( msc->msc_ld, LDAP_OPT_DEREF,
+				( void * )&op->ors_deref );
+	}
+
 	ctrls = op->o_ctrls;
 	if ( meta_back_controls_add( op, rs, *mcp, candidate, &ctrls )
 		!= LDAP_SUCCESS )
-- 
GitLab