diff options
author | Jeremy Allison <jra@samba.org> | 2004-02-23 20:12:31 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2004-02-23 20:12:31 +0000 |
commit | aa4abfb3b589bf5123b5d0d674c3c26ebdabe1a0 (patch) | |
tree | 9d877b7c4cf309f40a24e1cb6c57e9bb59039b5b /source3 | |
parent | 24df38dbc6648261f86adcffd664ffc43f8f3346 (diff) | |
download | samba-aa4abfb3b589bf5123b5d0d674c3c26ebdabe1a0.tar.gz samba-aa4abfb3b589bf5123b5d0d674c3c26ebdabe1a0.tar.bz2 samba-aa4abfb3b589bf5123b5d0d674c3c26ebdabe1a0.zip |
Fix "unable to initialize" bug when smbd hasn't been run with
new system and a user is being added via pdbedit/smbpasswd.
Found at Connectathon setup.
Jeremy.
(This used to be commit f9c7a42e895f50e15d2f5079bfb2cb389fdf2df4)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/utils/pdbedit.c | 4 | ||||
-rw-r--r-- | source3/utils/smbpasswd.c | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/source3/utils/pdbedit.c b/source3/utils/pdbedit.c index 541dc33a08..3f7aba8366 100644 --- a/source3/utils/pdbedit.c +++ b/source3/utils/pdbedit.c @@ -398,6 +398,8 @@ static int new_user (struct pdb_context *in, const char *username, NTSTATUS nt_status; char *password1, *password2, *staticpass; + get_global_sam_sid(); + if (!NT_STATUS_IS_OK(nt_status = pdb_init_sam_new(&sam_pwent, username, 0))) { DEBUG(0, ("could not create account to add new user %s\n", username)); return -1; @@ -490,6 +492,8 @@ static int new_machine (struct pdb_context *in, const char *machine_in) fstring machineaccount; struct passwd *pwd = NULL; + get_global_sam_sid(); + fstrcpy(machinename, machine_in); machinename[15]= '\0'; diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c index b43b29d0ad..2f68d02ef6 100644 --- a/source3/utils/smbpasswd.c +++ b/source3/utils/smbpasswd.c @@ -341,8 +341,7 @@ static int process_root(int local_flags) int result = 0; char *old_passwd = NULL; - if (local_flags & LOCAL_SET_LDAP_ADMIN_PW) - { + if (local_flags & LOCAL_SET_LDAP_ADMIN_PW) { printf("Setting stored password for \"%s\" in secrets.tdb\n", lp_ldap_admin_dn()); if (!store_ldap_admin_pw(ldap_secret)) @@ -350,6 +349,9 @@ static int process_root(int local_flags) goto done; } + /* Ensure we have a SAM sid. */ + get_global_sam_sid(); + /* * Ensure both add/delete user are not set * Ensure add/delete user and either remote machine or join domain are |