Hi,
after discussing with Petr Spacek, following patch fixes ticket 4224.
--
/ Alexander Bokovoy
>From 83803494757e078c3a2850ddbb5eb886fd067dd1 Mon Sep 17 00:00:00 2001
From: Alexander Bokovoy
Date: Tue, 11 Mar 2014 16:28:12 +0200
Subject: [PATCH 3/3] ipa-sam: when deleting subtree make sure to deal with
LDAP failures
https://fedorahosted.org/freeipa/ticket/4224
---
daemons/ipa-sam/ipa_sam.c | 13 +++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/daemons/ipa-sam/ipa_sam.c b/daemons/ipa-sam/ipa_sam.c
index 1ca504d..7a8eeb4 100644
--- a/daemons/ipa-sam/ipa_sam.c
+++ b/daemons/ipa-sam/ipa_sam.c
@@ -2456,10 +2456,16 @@ static int delete_subtree(struct ldapsam_privates
*ldap_state, char* dn)
rc = smbldap_search(ldap_state->smbldap_state, dn, scope, filter, NULL,
0, &result);
TALLOC_FREE(filter);
- if (result != NULL) {
- smbldap_talloc_autofree_ldapmsg(dn, result);
+ if (rc != LDAP_SUCCESS) {
+ return rc;
}
+ if (result == NULL) {
+ return LDAP_NO_MEMORY;
+ }
+
+ smbldap_talloc_autofree_ldapmsg(dn, result);
+
for (entry = ldap_first_entry(state, result);
entry != NULL;
entry = ldap_next_entry(state, entry)) {
@@ -2467,6 +2473,9 @@ static int delete_subtree(struct ldapsam_privates
*ldap_state, char* dn)
/* remove child entries */
if ((entry_dn != NULL) && (strcmp(entry_dn, dn) != 0)) {
rc = smbldap_delete(ldap_state->smbldap_state,
entry_dn);
+ if (rc != LDAP_SUCCESS) {
+ return rc;
+ }
}
}
rc = smbldap_delete(ldap_state->smbldap_state, dn);
--
1.8.3.1
___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel