From e3e033d9aab1aba26ece4af71dc7d6b8cc5da418 Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Sat, 31 Oct 2009 01:06:33 +0000
Subject: [PATCH] ITS#6310

---
 CHANGES                         | 1 +
 servers/slapd/overlays/pcache.c | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/CHANGES b/CHANGES
index 97c950152e..cdb2d6b3a0 100644
--- a/CHANGES
+++ b/CHANGES
@@ -13,6 +13,7 @@ OpenLDAP 2.4.20 Engineering
 	Fixed slapd-ldap leak (ITS#6326)
 	Fixed slapd-relay bind segfault (ITS#6337)
 	Fixed slapo-memberof operational attr updates (ITS#6329)
+	Fixed slapo-pcache entry dupe (ITS#6310)
 	Fixed slapo-syncprov deadlock (ITS#6335)
 	Build Environment
 		Fixed slapd MAXPATHLEN handling (ITS#6342)
diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c
index 309a192771..bfd1cd30db 100644
--- a/servers/slapd/overlays/pcache.c
+++ b/servers/slapd/overlays/pcache.c
@@ -836,6 +836,7 @@ merge_entry(
 
 	slap_callback cb = { NULL, slap_null_cb, NULL, NULL };
 
+	e = entry_dup( e );
 	attr = e->e_attrs;
 	e->e_attrs = NULL;
 
@@ -877,7 +878,7 @@ merge_entry(
 		}
 	} else {
 		if ( op->ora_e == e )
-			be_entry_release_w( op, e );
+			entry_free( e );
 		rc = 1;
 	}
 
-- 
GitLab