https://bugs.openldap.org/show_bug.cgi?id=9737
Issue ID: 9737
Summary: ldapdelete unable to prune LDAP subentries
Product: OpenLDAP
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: client tools
Assignee: bugs(a)openldap.org
Reporter: neuroc0der(a)gmail.com
Target Milestone: ---
ldapdelete has a builtin capability to prune LDAP subentries (RFC 3672) by
utilizing LDAP subentries control when tracking children however currently that
logic does not work in the code and pruning always fails with 66 / 'not allowed
on non-leaf'. the test case for this is a normal parent entry which has LDAP
subentry type children underneath. the patch below addresses this issue.
From ba29cbf20804d1c73cc0b5ab16549c4faba75a9e Mon Sep 17 00:00:00 2001
From: Anton Bobrov <antbob(a)users.noreply.github.com>
Date: Thu, 4 Nov 2021 17:27:34 +0100
Subject: [PATCH] ldapdelete unable to prune LDAP subentries
---
clients/tools/ldapdelete.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/clients/tools/ldapdelete.c b/clients/tools/ldapdelete.c
index 8aa8e8c12..1a93aaadf 100644
--- a/clients/tools/ldapdelete.c
+++ b/clients/tools/ldapdelete.c
@@ -279,8 +279,13 @@ retry:;
}
rc = ldap_parse_result( ld, res, &code, &matcheddn, &text, &refs,
&ctrls, 1 );
+ if( rc != LDAP_SUCCESS ) {
+ fprintf( stderr, "%s: ldap_parse_result: %s (%d)\n",
+ prog, ldap_err2string( rc ), rc );
+ return rc;
+ }
- switch ( rc ) {
+ switch ( code ) {
case LDAP_SUCCESS:
break;
@@ -292,9 +297,7 @@ retry:;
/* fallthru */
default:
- fprintf( stderr, "%s: ldap_parse_result: %s (%d)\n",
- prog, ldap_err2string( rc ), rc );
- return rc;
+ break;
}
if( code != LDAP_SUCCESS ) {
--
2.31.1
--
You are receiving this mail because:
You are on the CC list for the issue.