From f98d217514433cd06887f8c0217a7835392f0375 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 27 Sep 2010 05:46:07 -0700 Subject: Change to using TDB_INCOMPATIBLE_HASH (the jenkins hash) on all TDB_CLEAR_IF_FIRST tdb's. For tdb's like gencache where we open without CLEAR_IF_FIRST and then with CLEAR_IF_FIRST if corrupt this is still safe to use as if opening an existing tdb the new hash will be ignored - it's only used on creating a new tdb not opening an old one. Jeremy. --- source3/utils/dbwrap_torture.c | 2 +- source3/utils/smbcontrol.c | 3 ++- source3/utils/status.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) (limited to 'source3/utils') diff --git a/source3/utils/dbwrap_torture.c b/source3/utils/dbwrap_torture.c index 1fdad0eb29..2d9761bac4 100644 --- a/source3/utils/dbwrap_torture.c +++ b/source3/utils/dbwrap_torture.c @@ -302,7 +302,7 @@ int main(int argc, const char *argv[]) } if (no_trans) { - tdb_flags |= TDB_CLEAR_IF_FIRST; + tdb_flags |= TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH; } db = db_open(mem_ctx, db_name, 0, tdb_flags, O_RDWR | O_CREAT, 0644); diff --git a/source3/utils/smbcontrol.c b/source3/utils/smbcontrol.c index 7b5f8aaa55..f8b359d99f 100644 --- a/source3/utils/smbcontrol.c +++ b/source3/utils/smbcontrol.c @@ -918,7 +918,8 @@ static bool do_winbind_offline(struct messaging_context *msg_ctx, tdb = tdb_open_log(cache_path("winbindd_cache.tdb"), WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE, - TDB_DEFAULT /* TDB_CLEAR_IF_FIRST */, O_RDWR|O_CREAT, 0600); + TDB_DEFAULT|TDB_INCOMPATIBLE_HASH /* TDB_CLEAR_IF_FIRST */, + O_RDWR|O_CREAT, 0600); if (!tdb) { fprintf(stderr, "Cannot open the tdb %s for writing.\n", diff --git a/source3/utils/status.c b/source3/utils/status.c index 12595236e7..053efab592 100644 --- a/source3/utils/status.c +++ b/source3/utils/status.c @@ -449,7 +449,7 @@ static int traverse_sessionid(const char *key, struct sessionid *session, int result; struct db_context *db; db = db_open(NULL, lock_path("locking.tdb"), 0, - TDB_CLEAR_IF_FIRST, O_RDONLY, 0); + TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, O_RDONLY, 0); if (!db) { d_printf("%s not initialised\n", -- cgit