From: Joseph Sutton Date: Thu, 25 Aug 2022 23:32:50 +0000 (+1200) Subject: pdb_samba_dsdb: Handle dsdb_search_one() errors X-Git-Tag: talloc-2.4.0~769 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f3cbf30a9f9ca874c42ccc8187cf5eca96e4c8a;p=thirdparty%2Fsamba.git pdb_samba_dsdb: Handle dsdb_search_one() errors Signed-off-by: Joseph Sutton Reviewed-by: Andrew Bartlett --- diff --git a/source3/passdb/pdb_samba_dsdb.c b/source3/passdb/pdb_samba_dsdb.c index d9c31e57186..4c0fd6d4430 100644 --- a/source3/passdb/pdb_samba_dsdb.c +++ b/source3/passdb/pdb_samba_dsdb.c @@ -1134,6 +1134,12 @@ static NTSTATUS pdb_samba_dsdb_delete_dom_group(struct pdb_methods *m, talloc_free(tmp_ctx); ldb_transaction_cancel(state->ldb); return NT_STATUS_NO_SUCH_GROUP; + } else if (rc != LDB_SUCCESS) { + talloc_free(tmp_ctx); + DEBUG(10, ("dsdb_search_one failed %s\n", + ldb_errstring(state->ldb))); + ldb_transaction_cancel(state->ldb); + return NT_STATUS_LDAP(rc); } rc = ldb_delete(state->ldb, dn); if (rc == LDB_ERR_NO_SUCH_OBJECT) { @@ -1599,6 +1605,12 @@ static NTSTATUS pdb_samba_dsdb_delete_alias(struct pdb_methods *m, talloc_free(tmp_ctx); ldb_transaction_cancel(state->ldb); return NT_STATUS_NO_SUCH_ALIAS; + } else if (rc != LDB_SUCCESS) { + talloc_free(tmp_ctx); + DEBUG(10, ("dsdb_search_one failed %s\n", + ldb_errstring(state->ldb))); + ldb_transaction_cancel(state->ldb); + return NT_STATUS_LDAP(rc); } rc = ldb_delete(state->ldb, dn); if (rc == LDB_ERR_NO_SUCH_OBJECT) {