]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
pdb_samba_dsdb: Handle dsdb_search_one() errors
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Thu, 25 Aug 2022 23:32:50 +0000 (11:32 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 5 Oct 2022 04:23:32 +0000 (04:23 +0000)
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source3/passdb/pdb_samba_dsdb.c

index d9c31e5718661bf5ade68b07c35d32d1058b6f5d..4c0fd6d4430f58cd4fc35aa4d1ffeab5704ceeb1 100644 (file)
@@ -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) {