From 9f5dafbedc7e6f7065f6b995c8733a7b79aa1392 Mon Sep 17 00:00:00 2001
From: Pierangelo Masarati <ando@openldap.org>
Date: Wed, 26 Sep 2007 22:41:38 +0000
Subject: [PATCH] import re-fix of ITS#5121

---
 CHANGES                      | 3 ++-
 servers/slapd/back-bdb/idl.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/CHANGES b/CHANGES
index fac7515d1a..ce52381ff6 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,9 +6,10 @@ OpenLDAP 2.4.6 Engineering
 	Fixed slapd alock_close with Quick mode (ITS#5129)
 	Fixed slapd ordered values add normalization issue (ITS#5136)
 	Fixed slapd-bdb/hdb suffix logging (ITS#5128)
+	Fixed slapd-bdb/hdb IDL LRU handling (ITS#5121)
 	Fixed slapd-ldap SASL idassert w/o authcId
-	Fixed slapd-meta conn caching on bind failure (ITS#5154)
 	Fixed slapd-meta leak when binding as rootdn (ITS#5155)
+	Fixed slapd-meta conn caching on bind failure (ITS#5154)
 	Fixed slapo-chain double-free (ITS#5137)
 	Fixed slapo-dynlist entry release (ITS#5135)
 	Fixed slapo-rwm modlist handling (ITS#5124)
diff --git a/servers/slapd/back-bdb/idl.c b/servers/slapd/back-bdb/idl.c
index 044f2a0d4c..dad12bf561 100644
--- a/servers/slapd/back-bdb/idl.c
+++ b/servers/slapd/back-bdb/idl.c
@@ -379,7 +379,7 @@ bdb_idl_cache_put(
 	if ( ++bdb->bi_idl_cache_size > bdb->bi_idl_cache_max_size ) {
 		int i;
 		ee = bdb->bi_idl_lru_tail;
-		for ( i = 0; i < 10; i++, ee = eprev ) {
+		for ( i = 0; ee != NULL && i < 10; i++, ee = eprev ) {
 			eprev = ee->idl_lru_prev;
 			if ( eprev == ee ) {
 				eprev = NULL;
-- 
GitLab