diff --git a/source4/dsdb/samdb/ldb_modules/partition.c b/source4/dsdb/samdb/ldb_modules/partition.c index 39e85e4..150ac40 100644 --- a/source4/dsdb/samdb/ldb_modules/partition.c +++ b/source4/dsdb/samdb/ldb_modules/partition.c @@ -839,8 +839,8 @@ static int partition_start_trans(struct ldb_module *module) ret = ldb_next_start_trans(data->partitions[i]->module); if (ret != LDB_SUCCESS) { /* Back it out, if it fails on one */ - for (i--; i >= 0; i--) { - ldb_next_del_trans(data->partitions[i]->module); + while (i > 0) { + ldb_next_del_trans(data->partitions[--i]->module); } ldb_next_del_trans(module); partition_metadata_del_trans(module);