When we fail a ldbadd or ldbedit we should cancel the transaction to
prevent ldb giving a warning about having a open transaction in the
ldb destructor
}
}
- if (count != 0 && ldb_transaction_commit(ldb) != 0) {
- printf("Failed to commit transaction: %s\n", ldb_errstring(ldb));
- exit(1);
+ if (count != 0) {
+ if (ldb_transaction_commit(ldb) != 0) {
+ printf("Failed to commit transaction: %s\n", ldb_errstring(ldb));
+ exit(1);
+ }
+ } else {
+ ldb_transaction_cancel(ldb);
}
talloc_free(ldb);
fprintf(stderr, "failed to add %s - %s\n",
ldb_dn_get_linearized(msgs2[i]->dn),
ldb_errstring(ldb));
+ ldb_transaction_cancel(ldb);
return -1;
}
adds++;
fprintf(stderr, "failed to delete %s - %s\n",
ldb_dn_get_linearized(msgs1[i]->dn),
ldb_errstring(ldb));
+ ldb_transaction_cancel(ldb);
return -1;
}
deletes++;