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/libsmb/samlogon_cache.c | 4 ++-- source3/libsmb/smb_share_modes.c | 2 +- source3/libsmb/unexpected.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'source3/libsmb') diff --git a/source3/libsmb/samlogon_cache.c b/source3/libsmb/samlogon_cache.c index 7f096ece76..45354f1c77 100644 --- a/source3/libsmb/samlogon_cache.c +++ b/source3/libsmb/samlogon_cache.c @@ -45,7 +45,7 @@ bool netsamlogon_cache_init(void) path = cache_path(NETSAMLOGON_TDB); again: - tdb = tdb_open_log(path, 0, TDB_DEFAULT, + tdb = tdb_open_log(path, 0, TDB_DEFAULT|TDB_INCOMPATIBLE_HASH, O_RDWR | O_CREAT, 0600); if (tdb == NULL) { DEBUG(0,("tdb_open_log('%s') - failed\n", path)); @@ -69,7 +69,7 @@ clear: first_try = false; DEBUG(0,("retry after CLEAR_IF_FIRST for '%s'\n", path)); - tdb = tdb_open_log(path, 0, TDB_CLEAR_IF_FIRST, + tdb = tdb_open_log(path, 0, TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, O_RDWR | O_CREAT, 0600); if (tdb) { tdb_close(tdb); diff --git a/source3/libsmb/smb_share_modes.c b/source3/libsmb/smb_share_modes.c index 177e0114b3..9f985501b6 100644 --- a/source3/libsmb/smb_share_modes.c +++ b/source3/libsmb/smb_share_modes.c @@ -67,7 +67,7 @@ struct smbdb_ctx *smb_share_mode_db_open(const char *db_path) memset(smb_db, '\0', sizeof(struct smbdb_ctx)); smb_db->smb_tdb = tdb_open(db_path, - 0, TDB_DEFAULT|TDB_CLEAR_IF_FIRST, + 0, TDB_DEFAULT|TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, O_RDWR|O_CREAT, 0644); diff --git a/source3/libsmb/unexpected.c b/source3/libsmb/unexpected.c index 1ac45ec84b..17ebcd22ab 100644 --- a/source3/libsmb/unexpected.c +++ b/source3/libsmb/unexpected.c @@ -47,7 +47,7 @@ void unexpected_packet(struct packet_struct *p) if (!tdbd) { tdbd = tdb_wrap_open(talloc_autofree_context(), lock_path("unexpected.tdb"), 0, - TDB_CLEAR_IF_FIRST|TDB_DEFAULT, + TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_INCOMPATIBLE_HASH, O_RDWR | O_CREAT, 0644); if (!tdbd) { DEBUG(0,("Failed to open unexpected.tdb\n")); -- cgit