summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/ldb/common/ldb_dn.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source4/lib/ldb/common/ldb_dn.c b/source4/lib/ldb/common/ldb_dn.c
index 3cdc7ba85f..edb5124d99 100644
--- a/source4/lib/ldb/common/ldb_dn.c
+++ b/source4/lib/ldb/common/ldb_dn.c
@@ -412,13 +412,13 @@ int ldb_dn_compare_base(struct ldb_context *ldb,
const struct ldb_dn *base,
const struct ldb_dn *dn)
{
- int i, ret;
+ int ret;
int n0, n1;
/* if the number of components doesn't match they differ */
n0 = base->comp_num - 1;
n1 = dn->comp_num - 1;
- for (i = 0; i < base->comp_num; i++, n0--, n1--) {
+ while (n0 >= 0 && n1 >= 0) {
const struct ldb_attrib_handler *h;
/* compare names (attribute names are guaranteed to be ASCII only) */
@@ -435,6 +435,8 @@ int ldb_dn_compare_base(struct ldb_context *ldb,
if (ret) {
return ret;
}
+ n1--;
+ n0--;
}
return 0;