From c549b645f5300bed76e62614e0137c7eecc2e067 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Thu, 16 Jul 2026 07:48:20 +0000
Subject: [PATCH] [#738] Fix dereferencing an alias that points into another backend (#741)
---
opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java | 11 +++++------
1 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java
index fd5f0bc..c3e38a4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java
@@ -13,6 +13,7 @@
*
* Copyright 2006-2008 Sun Microsystems, Inc.
* Portions Copyright 2014-2016 ForgeRock AS.
+ * Portions Copyrighted 2026 3A Systems, LLC.
*/
package org.opends.server.backends;
@@ -494,9 +495,10 @@
SearchScope scope = searchOperation.getScope();
SearchFilter filter = searchOperation.getFilter();
- // Make sure the base entry exists if it's supposed to be in this backend.
+ // Make sure the base entry exists. A base DN this backend does not hold has no entry
+ // either, so it must be reported as missing rather than searched for.
Entry baseEntry = entryMap.get(baseDN);
- if (baseEntry == null && handlesEntry(baseDN))
+ if (baseEntry == null)
{
DN matchedDN = serverContext.getBackendConfigManager().getParentDNInSuffix(baseDN);
while (matchedDN != null)
@@ -515,10 +517,7 @@
ResultCode.NO_SUCH_OBJECT, message, matchedDN, null);
}
- if (baseEntry != null)
- {
- baseEntry = baseEntry.duplicate(true);
- }
+ baseEntry = baseEntry.duplicate(true);
// If it's a base-level search, then just get that entry and return it if it
// matches the filter.
--
Gitblit v1.10.0