From fb249f25fe98af8c2dcbf498872fd48c2c3ed854 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 10 Jun 2015 22:03:01 +0000
Subject: [PATCH] OPENDJ-2090 - fix bounds checking for DN2ID children and subtree cursors.
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
index 6899251..777513a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
@@ -206,14 +206,14 @@
*/
private static final class ChildrenCursor extends SequentialCursorForwarding {
private final ByteStringBuilder builder;
- private final ByteString parentDN;
+ private final ByteString limit;
private boolean cursorOnParent;
ChildrenCursor(Cursor<ByteString, ByteString> delegate)
{
super(delegate);
builder = new ByteStringBuilder(128);
- parentDN = delegate.isDefined() ? delegate.getKey() : null;
+ limit = delegate.isDefined() ? afterKey(delegate.getKey()).toByteString() : null;
cursorOnParent = true;
}
@@ -228,7 +228,7 @@
// Go to the next sibling
delegate.positionToKeyOrNext(nextSibling());
}
- return isDefined() && delegate.getKey().startsWith(parentDN);
+ return isDefined() && delegate.getKey().compareTo(limit) < 0;
}
private ByteStringBuilder nextSibling()
@@ -242,18 +242,18 @@
* at creation.
*/
private static final class SubtreeCursor extends SequentialCursorForwarding {
- private final ByteString baseDN;
+ private final ByteString limit;
SubtreeCursor(Cursor<ByteString, ByteString> delegate)
{
super(delegate);
- baseDN = delegate.isDefined() ? delegate.getKey() : null;
+ limit = delegate.isDefined() ? afterKey(delegate.getKey()).toByteString() : null;
}
@Override
public boolean next()
{
- return delegate.next() && delegate.getKey().startsWith(baseDN);
+ return delegate.next() && delegate.getKey().compareTo(limit) < 0;
}
}
--
Gitblit v1.10.0