mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
Fixed all uses of tdb_fetch/store/_int to use explicit int32 little endian
in tdb's. All except winbindd_idmap.... Hmmmmmm.
Jeremy.
(This used to be commit ec71f1732b
)
This commit is contained in:
parent
0a3f6b9b48
commit
91536cc901
@ -142,14 +142,17 @@ char *decode_sid_name_use(fstring group, enum SID_NAME_USE name_use)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
open the group mapping tdb
|
Open the group mapping tdb.
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
BOOL init_group_mapping(void)
|
BOOL init_group_mapping(void)
|
||||||
{
|
{
|
||||||
static pid_t local_pid;
|
static pid_t local_pid;
|
||||||
char *vstring = "INFO/version";
|
char *vstring = "INFO/version";
|
||||||
|
int32 vers_id;
|
||||||
|
|
||||||
if (tdb && local_pid == sys_getpid()) return True;
|
if (tdb && local_pid == sys_getpid())
|
||||||
|
return True;
|
||||||
tdb = tdb_open_log(lock_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
|
tdb = tdb_open_log(lock_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
|
||||||
if (!tdb) {
|
if (!tdb) {
|
||||||
DEBUG(0,("Failed to open group mapping database\n"));
|
DEBUG(0,("Failed to open group mapping database\n"));
|
||||||
@ -160,10 +163,20 @@ BOOL init_group_mapping(void)
|
|||||||
|
|
||||||
/* handle a Samba upgrade */
|
/* handle a Samba upgrade */
|
||||||
tdb_lock_bystring(tdb, vstring);
|
tdb_lock_bystring(tdb, vstring);
|
||||||
if (tdb_fetch_int(tdb, vstring) != DATABASE_VERSION) {
|
|
||||||
tdb_traverse(tdb, tdb_traverse_delete_fn, NULL);
|
/* Cope with byte-reversed older versions of the db. */
|
||||||
tdb_store_int(tdb, vstring, DATABASE_VERSION);
|
vers_id = tdb_fetch_int32(tdb, vstring);
|
||||||
|
if ((vers_id != DATABASE_VERSION) && (IREV(vers_id) == DATABASE_VERSION)) {
|
||||||
|
/* Written on a bigendian machine with old fetch_int code. Save as le. */
|
||||||
|
tdb_store_int32(tdb, vstring, DATABASE_VERSION);
|
||||||
|
vers_id = DATABASE_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (vers_id != DATABASE_VERSION) {
|
||||||
|
tdb_traverse(tdb, tdb_traverse_delete_fn, NULL);
|
||||||
|
tdb_store_int32(tdb, vstring, DATABASE_VERSION);
|
||||||
|
}
|
||||||
|
|
||||||
tdb_unlock_bystring(tdb, vstring);
|
tdb_unlock_bystring(tdb, vstring);
|
||||||
|
|
||||||
/* write a list of default groups */
|
/* write a list of default groups */
|
||||||
|
@ -144,11 +144,11 @@ BOOL lang_tdb_init(const char *lang)
|
|||||||
|
|
||||||
free(path);
|
free(path);
|
||||||
|
|
||||||
loadtime = tdb_fetch_int(tdb, "/LOADTIME/");
|
loadtime = tdb_fetch_int32(tdb, "/LOADTIME/");
|
||||||
|
|
||||||
if (loadtime == -1 || loadtime < st.st_mtime) {
|
if (loadtime == -1 || loadtime < st.st_mtime) {
|
||||||
load_msg(msg_path);
|
load_msg(msg_path);
|
||||||
tdb_store_int(tdb, "/LOADTIME/", (int)time(NULL));
|
tdb_store_int32(tdb, "/LOADTIME/", (int)time(NULL));
|
||||||
}
|
}
|
||||||
free(msg_path);
|
free(msg_path);
|
||||||
|
|
||||||
|
@ -25,14 +25,16 @@ static TDB_CONTEXT *tdb; /* used for driver files */
|
|||||||
#define DATABASE_VERSION 1
|
#define DATABASE_VERSION 1
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
open the account policy tdb
|
Open the account policy tdb.
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
BOOL init_account_policy(void)
|
BOOL init_account_policy(void)
|
||||||
{
|
{
|
||||||
static pid_t local_pid;
|
static pid_t local_pid;
|
||||||
char *vstring = "INFO/version";
|
char *vstring = "INFO/version";
|
||||||
|
|
||||||
if (tdb && local_pid == sys_getpid()) return True;
|
if (tdb && local_pid == sys_getpid())
|
||||||
|
return True;
|
||||||
tdb = tdb_open_log(lock_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
|
tdb = tdb_open_log(lock_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
|
||||||
if (!tdb) {
|
if (!tdb) {
|
||||||
DEBUG(0,("Failed to open account policy database\n"));
|
DEBUG(0,("Failed to open account policy database\n"));
|
||||||
@ -43,9 +45,9 @@ BOOL init_account_policy(void)
|
|||||||
|
|
||||||
/* handle a Samba upgrade */
|
/* handle a Samba upgrade */
|
||||||
tdb_lock_bystring(tdb, vstring);
|
tdb_lock_bystring(tdb, vstring);
|
||||||
if (tdb_fetch_int(tdb, vstring) != DATABASE_VERSION) {
|
if (tdb_fetch_int32(tdb, vstring) != DATABASE_VERSION) {
|
||||||
tdb_traverse(tdb, tdb_traverse_delete_fn, NULL);
|
tdb_traverse(tdb, tdb_traverse_delete_fn, NULL);
|
||||||
tdb_store_int(tdb, vstring, DATABASE_VERSION);
|
tdb_store_int32(tdb, vstring, DATABASE_VERSION);
|
||||||
|
|
||||||
account_policy_set(AP_MIN_PASSWORD_LEN, MINPASSWDLENGTH); /* 5 chars minimum */
|
account_policy_set(AP_MIN_PASSWORD_LEN, MINPASSWDLENGTH); /* 5 chars minimum */
|
||||||
account_policy_set(AP_PASSWORD_HISTORY, 0); /* don't keep any old password */
|
account_policy_set(AP_PASSWORD_HISTORY, 0); /* don't keep any old password */
|
||||||
@ -59,7 +61,6 @@ BOOL init_account_policy(void)
|
|||||||
}
|
}
|
||||||
tdb_unlock_bystring(tdb, vstring);
|
tdb_unlock_bystring(tdb, vstring);
|
||||||
|
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +103,7 @@ BOOL account_policy_get(int field, uint32 *value)
|
|||||||
init_account_policy();
|
init_account_policy();
|
||||||
|
|
||||||
fstrcpy(name, decode_account_policy_name(field));
|
fstrcpy(name, decode_account_policy_name(field));
|
||||||
*value=tdb_fetch_int(tdb, name);
|
*value=tdb_fetch_int32(tdb, name);
|
||||||
DEBUG(10,("account_policy_get: %s:%d\n", name, *value));
|
DEBUG(10,("account_policy_get: %s:%d\n", name, *value));
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
@ -117,7 +118,7 @@ BOOL account_policy_set(int field, uint32 value)
|
|||||||
init_account_policy();
|
init_account_policy();
|
||||||
|
|
||||||
fstrcpy(name, decode_account_policy_name(field));
|
fstrcpy(name, decode_account_policy_name(field));
|
||||||
if ( tdb_store_int(tdb, name, value)== -1)
|
if ( tdb_store_int32(tdb, name, value)== -1)
|
||||||
return False;
|
return False;
|
||||||
DEBUG(10,("account_policy_set: %s:%d\n", name, value));
|
DEBUG(10,("account_policy_set: %s:%d\n", name, value));
|
||||||
|
|
||||||
|
@ -262,15 +262,27 @@ BOOL nt_printing_init(void)
|
|||||||
|
|
||||||
/* handle a Samba upgrade */
|
/* handle a Samba upgrade */
|
||||||
tdb_lock_bystring(tdb_drivers, vstring);
|
tdb_lock_bystring(tdb_drivers, vstring);
|
||||||
if (tdb_fetch_int(tdb_drivers, vstring) != NTDRIVERS_DATABASE_VERSION) {
|
{
|
||||||
|
int32 vers_id;
|
||||||
|
|
||||||
if (tdb_fetch_int(tdb_drivers, vstring) == NTDRIVERS_DATABASE_VERSION_1) {
|
/* Cope with byte-reversed older versions of the db. */
|
||||||
if (!upgrade_to_version_2())
|
vers_id = tdb_fetch_int32(tdb_drivers, vstring);
|
||||||
return False;
|
if ((vers_id != NTDRIVERS_DATABASE_VERSION) && (IREV(vers_id) == NTDRIVERS_DATABASE_VERSION)) {
|
||||||
} else
|
/* Written on a bigendian machine with old fetch_int code. Save as le. */
|
||||||
tdb_traverse(tdb_drivers, tdb_traverse_delete_fn, NULL);
|
tdb_store_int32(tdb_drivers, vstring, NTDRIVERS_DATABASE_VERSION);
|
||||||
|
vers_id = NTDRIVERS_DATABASE_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
tdb_store_int(tdb_drivers, vstring, NTDRIVERS_DATABASE_VERSION);
|
if (vers_id != NTDRIVERS_DATABASE_VERSION) {
|
||||||
|
|
||||||
|
if ((vers_id == NTDRIVERS_DATABASE_VERSION_1) || (IREV(vers_id) == NTDRIVERS_DATABASE_VERSION_1)) {
|
||||||
|
if (!upgrade_to_version_2())
|
||||||
|
return False;
|
||||||
|
} else
|
||||||
|
tdb_traverse(tdb_drivers, tdb_traverse_delete_fn, NULL);
|
||||||
|
|
||||||
|
tdb_store_int32(tdb_drivers, vstring, NTDRIVERS_DATABASE_VERSION);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
tdb_unlock_bystring(tdb_drivers, vstring);
|
tdb_unlock_bystring(tdb_drivers, vstring);
|
||||||
|
|
||||||
|
@ -45,9 +45,10 @@ static pid_t local_pid;
|
|||||||
static int get_queue_status(int, print_status_struct *);
|
static int get_queue_status(int, print_status_struct *);
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
initialise the printing backend. Called once at startup.
|
Initialise the printing backend. Called once at startup.
|
||||||
Does not survive a fork
|
Does not survive a fork
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
BOOL print_backend_init(void)
|
BOOL print_backend_init(void)
|
||||||
{
|
{
|
||||||
char *sversion = "INFO/version";
|
char *sversion = "INFO/version";
|
||||||
@ -63,9 +64,9 @@ BOOL print_backend_init(void)
|
|||||||
|
|
||||||
/* handle a Samba upgrade */
|
/* handle a Samba upgrade */
|
||||||
tdb_lock_bystring(tdb, sversion);
|
tdb_lock_bystring(tdb, sversion);
|
||||||
if (tdb_fetch_int(tdb, sversion) != PRINT_DATABASE_VERSION) {
|
if (tdb_fetch_int32(tdb, sversion) != PRINT_DATABASE_VERSION) {
|
||||||
tdb_traverse(tdb, tdb_traverse_delete_fn, NULL);
|
tdb_traverse(tdb, tdb_traverse_delete_fn, NULL);
|
||||||
tdb_store_int(tdb, sversion, PRINT_DATABASE_VERSION);
|
tdb_store_int32(tdb, sversion, PRINT_DATABASE_VERSION);
|
||||||
}
|
}
|
||||||
tdb_unlock_bystring(tdb, sversion);
|
tdb_unlock_bystring(tdb, sversion);
|
||||||
|
|
||||||
@ -263,7 +264,7 @@ static void print_cache_flush(int snum)
|
|||||||
{
|
{
|
||||||
fstring key;
|
fstring key;
|
||||||
slprintf(key, sizeof(key)-1, "CACHE/%s", lp_servicename(snum));
|
slprintf(key, sizeof(key)-1, "CACHE/%s", lp_servicename(snum));
|
||||||
tdb_store_int(tdb, key, -1);
|
tdb_store_int32(tdb, key, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -385,7 +386,7 @@ static void print_queue_update_background(int snum)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
slprintf(cachestr, sizeof(cachestr)-1, "CACHE/%s", printer_name);
|
slprintf(cachestr, sizeof(cachestr)-1, "CACHE/%s", printer_name);
|
||||||
tdb_store_int(tdb, cachestr, (int)time(NULL));
|
tdb_store_int32(tdb, cachestr, (int)time(NULL));
|
||||||
|
|
||||||
/* get the current queue using the appropriate interface */
|
/* get the current queue using the appropriate interface */
|
||||||
ZERO_STRUCT(status);
|
ZERO_STRUCT(status);
|
||||||
@ -441,7 +442,7 @@ static void print_queue_update_background(int snum)
|
|||||||
|
|
||||||
safe_free(tstruct.queue);
|
safe_free(tstruct.queue);
|
||||||
|
|
||||||
tdb_store_int(tdb, "INFO/total_jobs", tstruct.total_jobs);
|
tdb_store_int32(tdb, "INFO/total_jobs", tstruct.total_jobs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the old print status. We will use this to compare the
|
* Get the old print status. We will use this to compare the
|
||||||
@ -471,7 +472,7 @@ static void print_queue_update_background(int snum)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
slprintf(keystr, sizeof(keystr)-1, "CACHE/%s", printer_name);
|
slprintf(keystr, sizeof(keystr)-1, "CACHE/%s", printer_name);
|
||||||
tdb_store_int(tdb, keystr, (int)time(NULL));
|
tdb_store_int32(tdb, keystr, (int)time(NULL));
|
||||||
|
|
||||||
/* Delete our pid from the db. */
|
/* Delete our pid from the db. */
|
||||||
set_updating_pid(printer_name, True);
|
set_updating_pid(printer_name, True);
|
||||||
@ -812,7 +813,7 @@ static BOOL print_cache_expired(int snum)
|
|||||||
time_t t2, t = time(NULL);
|
time_t t2, t = time(NULL);
|
||||||
|
|
||||||
slprintf(key, sizeof(key)-1, "CACHE/%s", lp_servicename(snum));
|
slprintf(key, sizeof(key)-1, "CACHE/%s", lp_servicename(snum));
|
||||||
t2 = tdb_fetch_int(tdb, key);
|
t2 = tdb_fetch_int32(tdb, key);
|
||||||
if (t2 == ((time_t)-1) || (t - t2) >= lp_lpqcachetime()) {
|
if (t2 == ((time_t)-1) || (t - t2) >= lp_lpqcachetime()) {
|
||||||
DEBUG(3, ("print cache expired for queue %s \
|
DEBUG(3, ("print cache expired for queue %s \
|
||||||
(last_cache = %d, time now = %d, qcachetime = %d)\n", lp_servicename(snum),
|
(last_cache = %d, time now = %d, qcachetime = %d)\n", lp_servicename(snum),
|
||||||
@ -875,7 +876,7 @@ static int get_total_jobs(int snum)
|
|||||||
/* make sure the database is up to date */
|
/* make sure the database is up to date */
|
||||||
if (print_cache_expired(snum)) print_queue_update(snum);
|
if (print_cache_expired(snum)) print_queue_update(snum);
|
||||||
|
|
||||||
total_jobs = tdb_fetch_int(tdb, "INFO/total_jobs");
|
total_jobs = tdb_fetch_int32(tdb, "INFO/total_jobs");
|
||||||
if (total_jobs >0)
|
if (total_jobs >0)
|
||||||
return total_jobs;
|
return total_jobs;
|
||||||
else
|
else
|
||||||
@ -966,7 +967,7 @@ int print_job_start(struct current_user *user, int snum, char *jobname)
|
|||||||
/* lock the database */
|
/* lock the database */
|
||||||
tdb_lock_bystring(tdb, "INFO/nextjob");
|
tdb_lock_bystring(tdb, "INFO/nextjob");
|
||||||
|
|
||||||
next_jobid = tdb_fetch_int(tdb, "INFO/nextjob");
|
next_jobid = tdb_fetch_int32(tdb, "INFO/nextjob");
|
||||||
if (next_jobid == -1)
|
if (next_jobid == -1)
|
||||||
next_jobid = 1;
|
next_jobid = 1;
|
||||||
|
|
||||||
@ -981,7 +982,7 @@ int print_job_start(struct current_user *user, int snum, char *jobname)
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
tdb_store_int(tdb, "INFO/nextjob", jobid);
|
tdb_store_int32(tdb, "INFO/nextjob", jobid);
|
||||||
|
|
||||||
/* we have a job entry - now create the spool file */
|
/* we have a job entry - now create the spool file */
|
||||||
slprintf(pjob.filename, sizeof(pjob.filename)-1, "%s/%s%.6d.XXXXXX",
|
slprintf(pjob.filename, sizeof(pjob.filename)-1, "%s/%s%.6d.XXXXXX",
|
||||||
|
@ -120,30 +120,41 @@ static TDB_CONTEXT *share_tdb; /* used for share security descriptors */
|
|||||||
|
|
||||||
BOOL share_info_db_init(void)
|
BOOL share_info_db_init(void)
|
||||||
{
|
{
|
||||||
static pid_t local_pid;
|
static pid_t local_pid;
|
||||||
char *vstring = "INFO/version";
|
char *vstring = "INFO/version";
|
||||||
|
int32 vers_id;
|
||||||
|
|
||||||
if (share_tdb && local_pid == sys_getpid()) return True;
|
if (share_tdb && local_pid == sys_getpid())
|
||||||
share_tdb = tdb_open_log(lock_path("share_info.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
|
return True;
|
||||||
if (!share_tdb) {
|
share_tdb = tdb_open_log(lock_path("share_info.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
|
||||||
DEBUG(0,("Failed to open share info database %s (%s)\n",
|
if (!share_tdb) {
|
||||||
lock_path("share_info.tdb"), strerror(errno) ));
|
DEBUG(0,("Failed to open share info database %s (%s)\n",
|
||||||
return False;
|
lock_path("share_info.tdb"), strerror(errno) ));
|
||||||
}
|
return False;
|
||||||
|
}
|
||||||
|
|
||||||
local_pid = sys_getpid();
|
local_pid = sys_getpid();
|
||||||
|
|
||||||
/* handle a Samba upgrade */
|
/* handle a Samba upgrade */
|
||||||
tdb_lock_bystring(share_tdb, vstring);
|
tdb_lock_bystring(share_tdb, vstring);
|
||||||
if (tdb_fetch_int(share_tdb, vstring) != SHARE_DATABASE_VERSION) {
|
|
||||||
tdb_traverse(share_tdb, tdb_traverse_delete_fn, NULL);
|
/* Cope with byte-reversed older versions of the db. */
|
||||||
tdb_store_int(share_tdb, vstring, SHARE_DATABASE_VERSION);
|
vers_id = tdb_fetch_int32(share_tdb, vstring);
|
||||||
}
|
if ((vers_id != SHARE_DATABASE_VERSION) && (IREV(vers_id) == SHARE_DATABASE_VERSION)) {
|
||||||
tdb_unlock_bystring(share_tdb, vstring);
|
/* Written on a bigendian machine with old fetch_int code. Save as le. */
|
||||||
|
tdb_store_int32(share_tdb, vstring, SHARE_DATABASE_VERSION);
|
||||||
|
vers_id = SHARE_DATABASE_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (vers_id != SHARE_DATABASE_VERSION) {
|
||||||
|
tdb_traverse(share_tdb, tdb_traverse_delete_fn, NULL);
|
||||||
|
tdb_store_int32(share_tdb, vstring, SHARE_DATABASE_VERSION);
|
||||||
|
}
|
||||||
|
tdb_unlock_bystring(share_tdb, vstring);
|
||||||
|
|
||||||
message_register(MSG_SMB_CONF_UPDATED, smb_conf_updated);
|
message_register(MSG_SMB_CONF_UPDATED, smb_conf_updated);
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
|
Loading…
Reference in New Issue
Block a user