summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/passdb/pdb_tdb.c32
-rw-r--r--source3/smbd/mangle.c15
2 files changed, 15 insertions, 32 deletions
diff --git a/source3/passdb/pdb_tdb.c b/source3/passdb/pdb_tdb.c
index 6702926355..990d0077b2 100644
--- a/source3/passdb/pdb_tdb.c
+++ b/source3/passdb/pdb_tdb.c
@@ -384,12 +384,10 @@ BOOL pdb_setsampwent(BOOL update)
pstrcat (tdbfile, PASSDB_FILE_NAME);
/* Open tdb passwd */
- if (!(global_tdb_ent.passwd_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, update ? O_RDWR : O_RDONLY, 0600))) {
- DEBUG(0, ("Unable to open TDB passwd, trying create new!\n"));
- if (!(global_tdb_ent.passwd_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, O_RDWR | O_CREAT | O_EXCL, 0600))) {
- DEBUG(0, ("Unable to create TDB passwd (passdb.tdb) !!!"));
- return False;
- }
+ if (!(global_tdb_ent.passwd_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, update?(O_RDWR|O_CREAT):O_RDONLY, 0600)))
+ {
+ DEBUG(0, ("Unable to open/create TDB passwd\n"));
+ return False;
}
global_tdb_ent.key = tdb_firstkey(global_tdb_ent.passwd_tdb);
@@ -771,19 +769,11 @@ static BOOL tdb_update_sam(SAM_ACCOUNT* newpwd, BOOL override, int flag)
}
/* open the account TDB passwd*/
- pwd_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, O_RDWR, 0600);
- if (!pwd_tdb) {
+ pwd_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, O_RDWR | O_CREAT, 0600);
+ if (!pwd_tdb)
+ {
DEBUG(0, ("tdb_update_sam: Unable to open TDB passwd!\n"));
- if (flag == TDB_INSERT) {
- DEBUG(0, ("Unable to open TDB passwd, trying create new!\n"));
- pwd_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, O_RDWR | O_CREAT | O_EXCL, 0600);
- if (!pwd_tdb) {
- DEBUG(0, ("Unable to create TDB passwd (passdb.tdb) !!!\n"));
- ret = False;
- goto reallydone;
- }
- newtdb = True;
- }
+ return False;
}
/* add the account */
@@ -813,13 +803,11 @@ static BOOL tdb_update_sam(SAM_ACCOUNT* newpwd, BOOL override, int flag)
}
done:
-
/* cleanup */
tdb_close (pwd_tdb);
-
-reallydone:
SAFE_FREE(buf);
- return (ret);
+
+ return (ret);
}
/***************************************************************************
diff --git a/source3/smbd/mangle.c b/source3/smbd/mangle.c
index 0de2188bcf..c0a3dacf08 100644
--- a/source3/smbd/mangle.c
+++ b/source3/smbd/mangle.c
@@ -1006,15 +1006,10 @@ static BOOL init_mangle_tdb(void)
slprintf(tdbfile, sizeof(tdbfile)-1, "%s/%s", lp_private_dir(), MANGLE_TDB_FILE_NAME);
/* Open tdb */
- if (!(global_mt_ent.mangle_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, O_RDWR, 0600)))
+ if (!(global_mt_ent.mangle_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, O_RDWR | O_CREAT, 0600)))
{
- DEBUG(0, ("Unable to open Mangle TDB, trying create new!\n"));
- /* create a new one if it does not exist */
- if (!(global_mt_ent.mangle_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, O_RDWR | O_CREAT | O_EXCL, 0600)))
- {
- DEBUG(0, ("Unable to create Mangle TDB (%s) !!!", tdbfile));
- return False;
- }
+ DEBUG(0, ("Unable to open Mangle TDB\n"));
+ return False;
}
}
@@ -1153,7 +1148,7 @@ smb_ucs2_t *unmangle(const smb_ucs2_t *mangled)
}
strupper_w(temp);
/* set search key */
- pull_ucs2(NULL, mufname, temp, sizeof(mufname), 0, STR_TERMINATE);
+ ucs2_to_dos(NULL, mufname, temp, sizeof(mufname), 0, STR_TERMINATE);
SAFE_FREE(temp);
slprintf(keystr, sizeof(keystr)-1, "%s%s", MANGLED_PREFIX, mufname);
key.dptr = keystr;
@@ -1254,7 +1249,7 @@ smb_ucs2_t *_mangle(const smb_ucs2_t *unmangled)
snprintf(num, 7, "%d", c);
strncat_wa(temp, num, n);
- pull_ucs2(NULL, mufname, temp, sizeof(mufname), 0, STR_TERMINATE);
+ ucs2_to_dos(NULL, mufname, temp, sizeof(mufname), 0, STR_TERMINATE);
if (strlen(mufname) > 8)
{
n++;