summaryrefslogtreecommitdiff
path: root/source3/libsmb
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-09-27 05:46:07 -0700
committerJeremy Allison <jra@samba.org>2010-09-27 17:18:54 -0700
commitf98d217514433cd06887f8c0217a7835392f0375 (patch)
treec7bf61f24c3381c9f7996a0a19045d36af3f0783 /source3/libsmb
parent66761423474edc9736a8a6eae6feaaf958d89d0e (diff)
downloadsamba-f98d217514433cd06887f8c0217a7835392f0375.tar.gz
samba-f98d217514433cd06887f8c0217a7835392f0375.tar.bz2
samba-f98d217514433cd06887f8c0217a7835392f0375.zip
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.
Diffstat (limited to 'source3/libsmb')
-rw-r--r--source3/libsmb/samlogon_cache.c4
-rw-r--r--source3/libsmb/smb_share_modes.c2
-rw-r--r--source3/libsmb/unexpected.c2
3 files changed, 4 insertions, 4 deletions
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"));