Fix bug 7590 - offline login fails because winbind deletes cache on every startup.
authorJeremy Allison <jra@samba.org>
Tue, 27 Jul 2010 08:54:01 +0000 (01:54 -0700)
committerKarolin Seeger <kseeger@samba.org>
Thu, 13 Jan 2011 16:58:51 +0000 (17:58 +0100)
Sync lib/tdb_validate.c with the change in current master.
Change tdb_validate_open() to always use O_RDWR instead of O_RDONLY,
as (from the bug report): "db_check() will always return failure for a read-only database.
Silently, without any log output, when _tdb_lockall() fails."

Jeremy.
(cherry picked from commit 39cb903463d8a3fcabd9e148112bf5cf81744130)
(cherry picked from commit 9812b1a601c9ccc2a3e6c06b98c32730a32c787a)

source3/lib/tdb_validate.c

index 092546e3eb53b6df077f8286c7f3e962bc0f72b4..5f9e155ea143cf2e1dbc713e3bc95d69a2516690 100644 (file)
@@ -181,7 +181,7 @@ int tdb_validate_open(const char *tdb_path, tdb_validate_data_func validate_fn)
 
        DEBUG(5, ("tdb_validate_open called for tdb '%s'\n", tdb_path));
 
-       tdb = tdb_open_log(tdb_path, 0, TDB_DEFAULT, O_RDONLY, 0);
+       tdb = tdb_open_log(tdb_path, 0, TDB_DEFAULT, O_RDWR, 0);
        if (!tdb) {
                DEBUG(1, ("Error opening tdb %s\n", tdb_path));
                return ret;