X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Fopen.c;h=7bb50f1db5964ae13687f0c792fab5a8603e8481;hb=4db6a6709bb3426466317c04c618bcb8034bb5b5;hp=f2d23aed9cc2abe07cf1d1624f266c63ebd1797e;hpb=8d8de08d9079f503256e1682dfa93bb22dcd4ad0;p=ccan diff --git a/ccan/tdb2/open.c b/ccan/tdb2/open.c index f2d23aed..7bb50f1d 100644 --- a/ccan/tdb2/open.c +++ b/ccan/tdb2/open.c @@ -209,6 +209,7 @@ struct tdb_context *tdb_open(const char *name, int tdb_flags, tdb->transaction = NULL; tdb->stats = NULL; tdb->access = NULL; + tdb->last_error = TDB_SUCCESS; tdb->file = NULL; tdb_hash_init(tdb); tdb_io_init(tdb); @@ -453,9 +454,9 @@ fail_errno: #ifdef TDB_TRACE close(tdb->tracefd); #endif - free((char *)tdb->name); + free(cast_const(char *, tdb->name)); if (tdb->file) { - tdb_unlock_all(tdb); + tdb_lock_cleanup(tdb); if (--tdb->file->refcnt == 0) { assert(tdb->file->num_lockrecs == 0); if (tdb->file->map_ptr) { @@ -494,11 +495,11 @@ int tdb_close(struct tdb_context *tdb) else tdb_munmap(tdb->file); } - free((char *)tdb->name); + free(cast_const(char *, tdb->name)); if (tdb->file) { struct tdb_file **i; - tdb_unlock_all(tdb); + tdb_lock_cleanup(tdb); if (--tdb->file->refcnt == 0) { ret = close(tdb->file->fd);